[CIFS] mount of IPC$ breaks with iget patch
authorSteve French <sfrench@us.ibm.com>
Tue, 12 Aug 2008 14:14:40 +0000 (14:14 +0000)
committerSteve French <sfrench@us.ibm.com>
Thu, 14 Aug 2008 03:55:14 +0000 (03:55 +0000)
In looking at network named pipe support on cifs, I noticed that
Dave Howell's iget patch:

    iget: stop CIFS from using iget() and read_inode()

broke mounts to IPC$ (the interprocess communication share), and don't
handle the error case (when getting info on the root inode fails).

Thanks to Gunter who noted a typo in a debug line in the original
version of this patch.

CC: David Howells <dhowells@redhat.com>
CC: Gunter Kukkukk <linux@kukkukk.com>
CC: Stable Kernel <stable@kernel.org>
Signed-off-by: Steve French <sfrench@us.ibm.com>
fs/cifs/inode.c

index 28a22092d4502709fa6d339c40ac2872aca482fa..848286861c314737961cc91f55f3e574930a17a7 100644 (file)
@@ -649,6 +649,7 @@ struct inode *cifs_iget(struct super_block *sb, unsigned long ino)
                inode->i_fop = &simple_dir_operations;
                inode->i_uid = cifs_sb->mnt_uid;
                inode->i_gid = cifs_sb->mnt_gid;
+       } else if (rc) {
                _FreeXid(xid);
                iget_failed(inode);
                return ERR_PTR(rc);