On Tue, 9 Nov 2010 12:27:41 +0530 Suresh Jayaraman <sjayaraman@xxxxxxx> wrote: > Andrew Hendry reported a kmemleak warning in 2.6.37-rc1 while editing a > text file with gedit over cifs. > > unreferenced object 0xffff88022ee08b40 (size 32): > comm "gedit", pid 2524, jiffies 4300160388 (age 2633.655s) > hex dump (first 32 bytes): > 5c 2e 67 6f 75 74 70 75 74 73 74 72 65 61 6d 2d \.goutputstream- > 35 42 41 53 4c 56 00 de 09 00 00 00 2c 26 78 ee 5BASLV......,&x. > backtrace: > [<ffffffff81504a4d>] kmemleak_alloc+0x2d/0x60 > [<ffffffff81136e13>] __kmalloc+0xe3/0x1d0 > [<ffffffffa0313db0>] build_path_from_dentry+0xf0/0x230 [cifs] > [<ffffffffa031ae1e>] cifs_setattr+0x9e/0x770 [cifs] > [<ffffffff8115fe90>] notify_change+0x170/0x2e0 > [<ffffffff81145ceb>] sys_fchmod+0x10b/0x140 > [<ffffffff8100c172>] system_call_fastpath+0x16/0x1b > [<ffffffffffffffff>] 0xffffffffffffffff > > The commit 1025774c that removed inode_setattr() seems to have introduced this > memleak by returning early without freeing 'full_path'. > > Reported-by: Andrew Hendry <andrew.hendry@xxxxxxxxx> > Cc: Christoph Hellwig <hch@xxxxxx> > Signed-off-by: Suresh Jayaraman <sjayaraman@xxxxxxx> > --- > fs/cifs/inode.c | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > > diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c > index 39869c3..ef3a55b 100644 > --- a/fs/cifs/inode.c > +++ b/fs/cifs/inode.c > @@ -2177,7 +2177,6 @@ cifs_setattr_nounix(struct dentry *direntry, struct iattr *attrs) > > setattr_copy(inode, attrs); > mark_inode_dirty(inode); > - return 0; > > cifs_setattr_exit: > kfree(full_path); > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html That's almost certainly the bug. Reviewed-by: Jeff Layton <jlayton@xxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html