LINUX: Avoid duplicate mntget in afs_dentry_open
authorAndrew Deason <adeason@sinenomine.net>
Wed, 17 Apr 2013 06:27:47 +0000 (01:27 -0500)
committerDerrick Brashear <shadow@your-file-system.com>
Wed, 17 Apr 2013 12:35:17 +0000 (05:35 -0700)
Our caller already got a ref to 'mnt'; getting another one here will
overcount refs on 'mnt'.

This can make it impossible to unmount the filesystem the cache
resides on (even after the client is stopped), since it's ref count
will be very high.

FIXES 131613

Change-Id: I3f0cd0fd6c0c2ced74f2d799ea0d8f8701a20141
Reviewed-on: http://gerrit.openafs.org/9790
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
Tested-by: Stephan Wiesand <stephan.wiesand@desy.de>
Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>

src/afs/LINUX/osi_compat.h

index f729db5..6087d43 100644 (file)
@@ -529,7 +529,7 @@ afs_dentry_open(struct dentry *dp, struct vfsmount *mnt, int flags, const struct
     filp = dentry_open(&path, flags, creds);
     return filp;
 #else
-    return dentry_open(dp, mntget(mnt), flags, creds);
+    return dentry_open(dp, mnt, flags, creds);
 #endif
 }
 #endif