Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs: 9p: saving negative to unsigned char 9p: return on mutex_lock_interruptible() 9p: Creating files with names too long should fail with ENAMETOOLONG. 9p: Make sure we are able to clunk the cached fid on umount 9p: drop nlink remove fs/9p: Clunk the fid resulting from partial walk of the name 9p: documentation update 9p: Fix setting of protocol flags in v9fs_session_info structure.
This commit is contained in:
@@ -432,6 +432,7 @@ error:
|
||||
|
||||
static int v9fs_remove(struct inode *dir, struct dentry *file, int rmdir)
|
||||
{
|
||||
int retval;
|
||||
struct inode *file_inode;
|
||||
struct v9fs_session_info *v9ses;
|
||||
struct p9_fid *v9fid;
|
||||
@@ -445,7 +446,10 @@ static int v9fs_remove(struct inode *dir, struct dentry *file, int rmdir)
|
||||
if (IS_ERR(v9fid))
|
||||
return PTR_ERR(v9fid);
|
||||
|
||||
return p9_client_remove(v9fid);
|
||||
retval = p9_client_remove(v9fid);
|
||||
if (!retval)
|
||||
drop_nlink(file_inode);
|
||||
return retval;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -657,6 +661,9 @@ static struct dentry *v9fs_vfs_lookup(struct inode *dir, struct dentry *dentry,
|
||||
P9_DPRINTK(P9_DEBUG_VFS, "dir: %p dentry: (%s) %p nameidata: %p\n",
|
||||
dir, dentry->d_name.name, dentry, nameidata);
|
||||
|
||||
if (dentry->d_name.len > NAME_MAX)
|
||||
return ERR_PTR(-ENAMETOOLONG);
|
||||
|
||||
sb = dir->i_sb;
|
||||
v9ses = v9fs_inode2v9ses(dir);
|
||||
dfid = v9fs_fid_lookup(dentry->d_parent);
|
||||
|
Reference in New Issue
Block a user