diff options
author | Sripathi Kodi <sripathik@in.ibm.com> | 2010-03-25 08:47:26 -0400 |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2010-05-21 17:44:34 -0400 |
commit | 4681dbdacb5cdc4d3273c3a97a1858d6e00a5fe7 (patch) | |
tree | e29be0d9f98caa7ee176cf0a1a3c3a22fca4934d /fs/9p/vfs_inode.c | |
parent | bda8e7752063cdbdd1d308bc1705400a8cec1aeb (diff) |
9p: add 9P2000.L rename operation
I made a V2 of this patch on top of my patches for VFS switches.
All the changes were due to change in some offsets.
rename - change name of file or directory
size[4] Trename tag[2] fid[4] newdirfid[4] name[s]
size[4] Rrename tag[2]
The rename message is used to change the name of a file, possibly moving it
to a new directory. The 9P wstat message can only rename a file within the
same directory.
Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Sripathi Kodi <sripathik@in.ibm.com>
Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'fs/9p/vfs_inode.c')
-rw-r--r-- | fs/9p/vfs_inode.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 13a8ed6088b8..de9a39590b70 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -794,6 +794,13 @@ v9fs_vfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
794 | goto clunk_olddir; | 794 | goto clunk_olddir; |
795 | } | 795 | } |
796 | 796 | ||
797 | if (v9fs_proto_dotl(v9ses)) { | ||
798 | retval = p9_client_rename(oldfid, newdirfid, | ||
799 | (char *) new_dentry->d_name.name); | ||
800 | if (retval != -ENOSYS) | ||
801 | goto clunk_newdir; | ||
802 | } | ||
803 | |||
797 | /* 9P can only handle file rename in the same directory */ | 804 | /* 9P can only handle file rename in the same directory */ |
798 | if (memcmp(&olddirfid->qid, &newdirfid->qid, sizeof(newdirfid->qid))) { | 805 | if (memcmp(&olddirfid->qid, &newdirfid->qid, sizeof(newdirfid->qid))) { |
799 | P9_DPRINTK(P9_DEBUG_ERROR, | 806 | P9_DPRINTK(P9_DEBUG_ERROR, |