Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-17 Thread Miklos Szeredi
On Wed, Jul 17, 2013 at 1:20 PM, Niels de Vos wrote: > I can confirm that your patch fixes the original panic/BUG() with both > Brian's test-case and the GlusterFS regression tests. > > Feel free to add my Tested-by/Reviewed-by signoff for this patch. Thanks for the review and testing, patches

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-17 Thread Niels de Vos
On Tue, Jul 16, 2013 at 06:14:58PM +0200, Miklos Szeredi wrote: > On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: > > > I'm not sure why it would need to have a valid inode. A dentry with a > > NULL inode is valid, no? > > It is valid, yes. It's called a "negative" dentry, which

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-17 Thread Niels de Vos
On Tue, Jul 16, 2013 at 06:14:58PM +0200, Miklos Szeredi wrote: On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: I'm not sure why it would need to have a valid inode. A dentry with a NULL inode is valid, no? It is valid, yes. It's called a negative dentry, which caches the

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-17 Thread Miklos Szeredi
On Wed, Jul 17, 2013 at 1:20 PM, Niels de Vos nde...@redhat.com wrote: I can confirm that your patch fixes the original panic/BUG() with both Brian's test-case and the GlusterFS regression tests. Feel free to add my Tested-by/Reviewed-by signoff for this patch. Thanks for the review and

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Brian Foster
On 07/16/2013 12:14 PM, Miklos Szeredi wrote: > On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: > >> I'm not sure why it would need to have a valid inode. A dentry with a >> NULL inode is valid, no? > > It is valid, yes. It's called a "negative" dentry, which caches the >

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Miklos Szeredi
On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: > I'm not sure why it would need to have a valid inode. A dentry with a > NULL inode is valid, no? It is valid, yes. It's called a "negative" dentry, which caches the information that the file does not exist. > I think the question

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Brian Foster
On 07/16/2013 06:39 AM, Niels de Vos wrote: > On Mon, Jul 15, 2013 at 04:08:22PM -0400, Brian Foster wrote: >> On 07/15/2013 08:59 AM, Niels de Vos wrote: ... > >>> --- >>> fs/fuse/dir.c |4 +++- >>> 1 files changed, 3 insertions(+), 1 deletions(-) >>> >>> diff --git a/fs/fuse/dir.c

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Niels de Vos
On Mon, Jul 15, 2013 at 04:08:22PM -0400, Brian Foster wrote: > On 07/15/2013 08:59 AM, Niels de Vos wrote: > > In case d_lookup() returns a dentry with d_inode == NULL, the dentry is > > not returned with dput(). This results in triggering a BUG() in > > shrink_dcache_for_umount_subtree(): > > >

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Niels de Vos
On Mon, Jul 15, 2013 at 04:08:22PM -0400, Brian Foster wrote: On 07/15/2013 08:59 AM, Niels de Vos wrote: In case d_lookup() returns a dentry with d_inode == NULL, the dentry is not returned with dput(). This results in triggering a BUG() in shrink_dcache_for_umount_subtree(): BUG:

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Brian Foster
On 07/16/2013 06:39 AM, Niels de Vos wrote: On Mon, Jul 15, 2013 at 04:08:22PM -0400, Brian Foster wrote: On 07/15/2013 08:59 AM, Niels de Vos wrote: ... --- fs/fuse/dir.c |4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c index

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Miklos Szeredi
On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: I'm not sure why it would need to have a valid inode. A dentry with a NULL inode is valid, no? It is valid, yes. It's called a negative dentry, which caches the information that the file does not exist. I think the question is

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-16 Thread Brian Foster
On 07/16/2013 12:14 PM, Miklos Szeredi wrote: On Tue, Jul 16, 2013 at 09:15:16AM -0400, Brian Foster wrote: I'm not sure why it would need to have a valid inode. A dentry with a NULL inode is valid, no? It is valid, yes. It's called a negative dentry, which caches the information that

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-15 Thread Brian Foster
On 07/15/2013 08:59 AM, Niels de Vos wrote: > In case d_lookup() returns a dentry with d_inode == NULL, the dentry is > not returned with dput(). This results in triggering a BUG() in > shrink_dcache_for_umount_subtree(): > > BUG: Dentry ...{i=0,n=...} still in use (1) [unmount of fuse fuse] >

[PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-15 Thread Niels de Vos
In case d_lookup() returns a dentry with d_inode == NULL, the dentry is not returned with dput(). This results in triggering a BUG() in shrink_dcache_for_umount_subtree(): BUG: Dentry ...{i=0,n=...} still in use (1) [unmount of fuse fuse] Reported-by: Justin Clift Signed-off-by: Niels de Vos

[PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-15 Thread Niels de Vos
In case d_lookup() returns a dentry with d_inode == NULL, the dentry is not returned with dput(). This results in triggering a BUG() in shrink_dcache_for_umount_subtree(): BUG: Dentry ...{i=0,n=...} still in use (1) [unmount of fuse fuse] Reported-by: Justin Clift jcl...@redhat.com

Re: [fuse-devel] [PATCH] fuse: fix occasional dentry leak when readdirplus is used

2013-07-15 Thread Brian Foster
On 07/15/2013 08:59 AM, Niels de Vos wrote: In case d_lookup() returns a dentry with d_inode == NULL, the dentry is not returned with dput(). This results in triggering a BUG() in shrink_dcache_for_umount_subtree(): BUG: Dentry ...{i=0,n=...} still in use (1) [unmount of fuse fuse]