summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2011-06-28 12:11:16 +0200
committerEric Van Hensbergen <ericvh@gmail.com>2011-07-23 16:32:51 +0200
commit9e8fb38e7d7a00e5f63bbb331f0ea4c02286d5e6 (patch)
tree239ba68a93cb3908b1c1269415632ab18c13f47d /include
parentfs/9p: Always ask new inode in create (diff)
downloadlinux-9e8fb38e7d7a00e5f63bbb331f0ea4c02286d5e6.tar.xz
linux-9e8fb38e7d7a00e5f63bbb331f0ea4c02286d5e6.zip
fs/9p: add 9P2000.L renameat operation
renameat - change name of file or directory size[4] Trenameat tag[2] olddirfid[4] oldname[s] newdirfid[4] newname[s] size[4] Rrenameat tag[2] older Trename have the below request format size[4] Trename tag[2] fid[4] newdirfid[4] name[s] The rename message is used to change the name of a file, possibly moving it to a new directory. The rename opreation is actually a directory opertation and should ideally have olddirfid, if not we cannot represent the fid on server with anything other than name. We will have to derive the old directory name from fid in the Trename request. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'include')
-rw-r--r--include/net/9p/9p.h2
-rw-r--r--include/net/9p/client.h5
2 files changed, 6 insertions, 1 deletions
diff --git a/include/net/9p/9p.h b/include/net/9p/9p.h
index 160193e6dddd..61156207c98c 100644
--- a/include/net/9p/9p.h
+++ b/include/net/9p/9p.h
@@ -181,6 +181,8 @@ enum p9_msg_t {
P9_RLINK,
P9_TMKDIR = 72,
P9_RMKDIR,
+ P9_TRENAMEAT = 74,
+ P9_RRENAMEAT,
P9_TVERSION = 100,
P9_RVERSION,
P9_TAUTH = 102,
diff --git a/include/net/9p/client.h b/include/net/9p/client.h
index f7a8d036f803..62ceddf9994a 100644
--- a/include/net/9p/client.h
+++ b/include/net/9p/client.h
@@ -211,7 +211,10 @@ struct p9_dirent {
};
int p9_client_statfs(struct p9_fid *fid, struct p9_rstatfs *sb);
-int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid, char *name);
+int p9_client_rename(struct p9_fid *fid, struct p9_fid *newdirfid,
+ const char *name);
+int p9_client_renameat(struct p9_fid *olddirfid, const char *old_name,
+ struct p9_fid *newdirfid, const char *new_name);
struct p9_client *p9_client_create(const char *dev_name, char *options);
void p9_client_destroy(struct p9_client *clnt);
void p9_client_disconnect(struct p9_client *clnt);