Re: [PATCH] fuse: make fuse_permission() RCU aware

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 12 Jan 2011, Nick Piggin wrote:
> On Tue, Jan 11, 2011 at 11:14 PM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
> > From: Miklos Szeredi <mszeredi@xxxxxxx>
> >
> > Only bail out of fuse_permission() on IPERM_FLAG_RCU when it is
> > actually necessary.
> 
> Great, thanks for taking a look... How about d_revalidate?

Yeah, here's the patch

Do you want to collect these patches from fs maintainers, or should I
submit to Linus directly?

Thanks,
Miklos
---

From: Miklos Szeredi <mszeredi@xxxxxxx>
Subject: fuse: make fuse_dentry_revalidate() RCU aware

Only bail out of fuse_dentry_revalidate() on LOOKUP_RCU when blocking
is actually necessary.

Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxx>
---
 fs/fuse/dir.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Index: linux-2.6/fs/fuse/dir.c
===================================================================
--- linux-2.6.orig/fs/fuse/dir.c	2011-01-12 13:06:04.000000000 +0100
+++ linux-2.6/fs/fuse/dir.c	2011-01-12 13:07:30.000000000 +0100
@@ -158,9 +158,6 @@ static int fuse_dentry_revalidate(struct
 {
 	struct inode *inode;
 
-	if (nd->flags & LOOKUP_RCU)
-		return -ECHILD;
-
 	inode = entry->d_inode;
 	if (inode && is_bad_inode(inode))
 		return 0;
@@ -177,6 +174,9 @@ static int fuse_dentry_revalidate(struct
 		if (!inode)
 			return 0;
 
+		if (nd->flags & LOOKUP_RCU)
+			return -ECHILD;
+
 		fc = get_fuse_conn(inode);
 		req = fuse_get_req(fc);
 		if (IS_ERR(req))
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux