On Sun, 2016-07-03 at 02:24 +0900, Tomohiro Kusumi wrote: > if (!dentry->d_fsdata) should be testing d_fsdata or ino without !. I've added both of these to the list of kernel patches I have, hopefully I'll be able to get the needed testing done to send them to Andrew after the next merge window. But I need to take a closer look at this one though. There's another ENOMEM return just above this where ino is not freed. So I'm wondering if it should be freed here at all. It belongs to the dentry and would get freed using autofs4_dentry_release() on final dput() and that takes care of additional house keeping too (although a symlink dentry is a bit different and shouldn't need that extra cleanup). What really worries me is that autofs4_free_ino() doesn't set d_fsdata to NULL so there's a chance of a double free when autofs4_dentry_release() is finally called. > > Signed-off-by: Tomohiro Kusumi <kusumi.tomohiro@xxxxxxxxx> > --- > fs/autofs4/root.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c > index 93d3232..5a877bf 100644 > --- a/fs/autofs4/root.c > +++ b/fs/autofs4/root.c > @@ -577,7 +577,7 @@ static int autofs4_dir_symlink(struct inode *dir, > inode = autofs4_get_inode(dir->i_sb, S_IFLNK | 0555); > if (!inode) { > kfree(cp); > - if (!dentry->d_fsdata) > + if (ino) > autofs4_free_ino(ino); > return -ENOMEM; > } -- To unsubscribe from this list: send the line "unsubscribe autofs" in