aboutsummaryrefslogtreecommitdiffstats
path: root/fs/fuse/dir.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fuse/dir.c')
-rw-r--r--fs/fuse/dir.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
index 409ce6a7cca4..8605155db171 100644
--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -508,7 +508,7 @@ static int fuse_unlink(struct inode *dir, struct dentry *entry)
508 /* Set nlink to zero so the inode can be cleared, if 508 /* Set nlink to zero so the inode can be cleared, if
509 the inode does have more links this will be 509 the inode does have more links this will be
510 discovered at the next lookup/getattr */ 510 discovered at the next lookup/getattr */
511 inode->i_nlink = 0; 511 clear_nlink(inode);
512 fuse_invalidate_attr(inode); 512 fuse_invalidate_attr(inode);
513 fuse_invalidate_attr(dir); 513 fuse_invalidate_attr(dir);
514 fuse_invalidate_entry_cache(entry); 514 fuse_invalidate_entry_cache(entry);
@@ -534,7 +534,7 @@ static int fuse_rmdir(struct inode *dir, struct dentry *entry)
534 err = req->out.h.error; 534 err = req->out.h.error;
535 fuse_put_request(fc, req); 535 fuse_put_request(fc, req);
536 if (!err) { 536 if (!err) {
537 entry->d_inode->i_nlink = 0; 537 clear_nlink(entry->d_inode);
538 fuse_invalidate_attr(dir); 538 fuse_invalidate_attr(dir);
539 fuse_invalidate_entry_cache(entry); 539 fuse_invalidate_entry_cache(entry);
540 } else if (err == -EINTR) 540 } else if (err == -EINTR)
@@ -776,7 +776,7 @@ static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd)
776 if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO)) 776 if ((mask & MAY_EXEC) && !S_ISDIR(mode) && !(mode & S_IXUGO))
777 return -EACCES; 777 return -EACCES;
778 778
779 if (nd && (nd->flags & LOOKUP_ACCESS)) 779 if (nd && (nd->flags & (LOOKUP_ACCESS | LOOKUP_CHDIR)))
780 return fuse_access(inode, mask); 780 return fuse_access(inode, mask);
781 return 0; 781 return 0;
782 } 782 }