diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-10-13 09:54:24 +0000 |
---|---|---|
committer | Miklos Szeredi <miklos@szeredi.hu> | 2006-10-13 09:54:24 +0000 |
commit | d6f8db71b84a139c1d74d6d0c654659951219c38 (patch) | |
tree | 58b30d5e92983a13bd4f294aaf6a0965733b7554 /kernel/dir.c | |
parent | 856e5cb2e11d39e5051d1bcf0bd872aadfb777ae (diff) | |
download | libfuse-d6f8db71b84a139c1d74d6d0c654659951219c38.tar.gz |
kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.9
Diffstat (limited to 'kernel/dir.c')
-rw-r--r-- | kernel/dir.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/kernel/dir.c b/kernel/dir.c index c2f7d4e..3f12e19 100644 --- a/kernel/dir.c +++ b/kernel/dir.c @@ -529,7 +529,7 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry) /* Set nlink to zero so the inode can be cleared, if the inode does have more links this will be discovered at the next lookup/getattr */ - inode->i_nlink = 0; + clear_nlink(inode); fuse_invalidate_attr(inode); fuse_invalidate_attr(dir); fuse_invalidate_entry_cache(entry); @@ -555,7 +555,7 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry) err = req->out.h.error; fuse_put_request(fc, req); if (!err) { - entry->d_inode->i_nlink = 0; + clear_nlink(entry->d_inode); fuse_invalidate_attr(dir); fuse_invalidate_entry_cache(entry); } else if (err == -EINTR) @@ -815,7 +815,10 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd) if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO)) return -EACCES; - if (nd && (nd->flags & LOOKUP_ACCESS)) +#ifndef LOOKUP_CHDIR +#define LOOKUP_CHDIR 0 +#endif + if (nd && (nd->flags & (LOOKUP_ACCESS | LOOKUP_CHDIR))) return fuse_access(inode, mask); return 0; } @@ -1078,6 +1081,8 @@ static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry, struct inode *inode = entry->d_inode; int err = fuse_revalidate(entry); if (!err) + /* FIXME: may want specialized function because of + st_blksize on block devices on 2.6.19+ */ generic_fillattr(inode, stat); return err; |