diff options
Diffstat (limited to 'fs/xfs/xfs_ioctl.c')
| -rw-r--r-- | fs/xfs/xfs_ioctl.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 3a05a41b5d7..1f1535d25a9 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -208,6 +208,7 @@ xfs_open_by_handle(  	struct inode		*inode;  	struct dentry		*dentry;  	fmode_t			fmode; +	struct path		path;  	if (!capable(CAP_SYS_ADMIN))  		return -XFS_ERROR(EPERM); @@ -252,8 +253,10 @@ xfs_open_by_handle(  		goto out_dput;  	} -	filp = dentry_open(dentry, mntget(parfilp->f_path.mnt), -			   hreq->oflags, cred); +	path.mnt = parfilp->f_path.mnt; +	path.dentry = dentry; +	filp = dentry_open(&path, hreq->oflags, cred); +	dput(dentry);  	if (IS_ERR(filp)) {  		put_unused_fd(fd);  		return PTR_ERR(filp);  |