Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits) vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp isofs: Remove global fs lock jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory fix IN_DELETE_SELF on overwriting rename() on ramfs et.al. mm/truncate.c: fix build for CONFIG_BLOCK not enabled fs:update the NOTE of the file_operations structure Remove dead code in dget_parent() AFS: Fix silly characters in a comment switch d_add_ci() to d_splice_alias() in "found negative" case as well simplify gfs2_lookup() jfs_lookup(): don't bother with . or .. get rid of useless dget_parent() in btrfs rename() and link() get rid of useless dget_parent() in fs/btrfs/ioctl.c fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers drivers: fix up various ->llseek() implementations fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek Ext4: handle SEEK_HOLE/SEEK_DATA generically Btrfs: implement our own ->llseek fs: add SEEK_HOLE and SEEK_DATA flags reiserfs: make reiserfs default to barrier=flush ... Fix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new shrinker callout for the inode cache, that clashed with the xfs code to start the periodic workers later.
This commit is contained in:
@ -97,8 +97,7 @@ static int
|
||||
rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
||||
{
|
||||
static uint32_t clntid;
|
||||
struct nameidata nd;
|
||||
struct path path;
|
||||
struct path path, dir;
|
||||
char name[15];
|
||||
struct qstr q = {
|
||||
.name = name,
|
||||
@ -113,7 +112,7 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
||||
path.mnt = rpc_get_mount();
|
||||
if (IS_ERR(path.mnt))
|
||||
return PTR_ERR(path.mnt);
|
||||
error = vfs_path_lookup(path.mnt->mnt_root, path.mnt, dir_name, 0, &nd);
|
||||
error = vfs_path_lookup(path.mnt->mnt_root, path.mnt, dir_name, 0, &dir);
|
||||
if (error)
|
||||
goto err;
|
||||
|
||||
@ -121,7 +120,7 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
||||
q.len = snprintf(name, sizeof(name), "clnt%x", (unsigned int)clntid++);
|
||||
name[sizeof(name) - 1] = '\0';
|
||||
q.hash = full_name_hash(q.name, q.len);
|
||||
path.dentry = rpc_create_client_dir(nd.path.dentry, &q, clnt);
|
||||
path.dentry = rpc_create_client_dir(dir.dentry, &q, clnt);
|
||||
if (!IS_ERR(path.dentry))
|
||||
break;
|
||||
error = PTR_ERR(path.dentry);
|
||||
@ -132,11 +131,11 @@ rpc_setup_pipedir(struct rpc_clnt *clnt, char *dir_name)
|
||||
goto err_path_put;
|
||||
}
|
||||
}
|
||||
path_put(&nd.path);
|
||||
path_put(&dir);
|
||||
clnt->cl_path = path;
|
||||
return 0;
|
||||
err_path_put:
|
||||
path_put(&nd.path);
|
||||
path_put(&dir);
|
||||
err:
|
||||
rpc_put_mount();
|
||||
return error;
|
||||
|
Reference in New Issue
Block a user