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

From: Miklos Szeredi
Date: Wed Jan 12 2011 - 09:26:21 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/