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: (28 commits) net/9p: Return error on read with NULL buffer 9p: Add datasync to client side TFSYNC/RFSYNC for dotl net/9p: Return error if we fail to encode protocol data fs/9p: Use generic_file_open with lookup_instantiate_filp fs/9p: Add missing iput in v9fs_vfs_lookup fs/9p: Use mknod 9p operation on create without open request net/9p: Add waitq to VirtIO transport. [net/9p]Serialize virtqueue operations to make VirtIO transport SMP safe. 9p: Implement TREADLINK operation for 9p2000.L 9p: Use V9FS_MAGIC in statfs 9p: Implement TGETLOCK 9p: Implement TLOCK [9p] Introduce client side TFSYNC/RFSYNC for dotl. [fs/9p] Add file_operations for cached mode in dotl protocol. fs/9p: Add access = client option to opt in acl evaluation. fs/9p: Implement create time inheritance fs/9p: Update ACL on chmod fs/9p: Implement setting posix acl fs/9p: Add xattr callbacks for POSIX ACL fs/9p: Implement POSIX ACL permission checking function ...
This commit is contained in:
@@ -57,5 +57,6 @@
|
||||
|
||||
#define DEVPTS_SUPER_MAGIC 0x1cd1
|
||||
#define SOCKFS_MAGIC 0x534F434B
|
||||
#define V9FS_MAGIC 0x01021997
|
||||
|
||||
#endif /* __LINUX_MAGIC_H__ */
|
||||
|
||||
@@ -86,6 +86,8 @@ do { \
|
||||
|
||||
/**
|
||||
* enum p9_msg_t - 9P message types
|
||||
* @P9_TLERROR: not used
|
||||
* @P9_RLERROR: response for any failed request for 9P2000.L
|
||||
* @P9_TSTATFS: file system status request
|
||||
* @P9_RSTATFS: file system status response
|
||||
* @P9_TSYMLINK: make symlink request
|
||||
@@ -137,6 +139,8 @@ do { \
|
||||
*/
|
||||
|
||||
enum p9_msg_t {
|
||||
P9_TLERROR = 6,
|
||||
P9_RLERROR,
|
||||
P9_TSTATFS = 8,
|
||||
P9_RSTATFS,
|
||||
P9_TLOPEN = 12,
|
||||
@@ -149,6 +153,8 @@ enum p9_msg_t {
|
||||
P9_RMKNOD,
|
||||
P9_TRENAME = 20,
|
||||
P9_RRENAME,
|
||||
P9_TREADLINK = 22,
|
||||
P9_RREADLINK,
|
||||
P9_TGETATTR = 24,
|
||||
P9_RGETATTR,
|
||||
P9_TSETATTR = 26,
|
||||
@@ -159,6 +165,12 @@ enum p9_msg_t {
|
||||
P9_RXATTRCREATE,
|
||||
P9_TREADDIR = 40,
|
||||
P9_RREADDIR,
|
||||
P9_TFSYNC = 50,
|
||||
P9_RFSYNC,
|
||||
P9_TLOCK = 52,
|
||||
P9_RLOCK,
|
||||
P9_TGETLOCK = 54,
|
||||
P9_RGETLOCK,
|
||||
P9_TLINK = 70,
|
||||
P9_RLINK,
|
||||
P9_TMKDIR = 72,
|
||||
@@ -458,6 +470,48 @@ struct p9_iattr_dotl {
|
||||
u64 mtime_nsec;
|
||||
};
|
||||
|
||||
#define P9_LOCK_SUCCESS 0
|
||||
#define P9_LOCK_BLOCKED 1
|
||||
#define P9_LOCK_ERROR 2
|
||||
#define P9_LOCK_GRACE 3
|
||||
|
||||
#define P9_LOCK_FLAGS_BLOCK 1
|
||||
#define P9_LOCK_FLAGS_RECLAIM 2
|
||||
|
||||
/* struct p9_flock: POSIX lock structure
|
||||
* @type - type of lock
|
||||
* @flags - lock flags
|
||||
* @start - starting offset of the lock
|
||||
* @length - number of bytes
|
||||
* @proc_id - process id which wants to take lock
|
||||
* @client_id - client id
|
||||
*/
|
||||
|
||||
struct p9_flock {
|
||||
u8 type;
|
||||
u32 flags;
|
||||
u64 start;
|
||||
u64 length;
|
||||
u32 proc_id;
|
||||
char *client_id;
|
||||
};
|
||||
|
||||
/* struct p9_getlock: getlock structure
|
||||
* @type - type of lock
|
||||
* @start - starting offset of the lock
|
||||
* @length - number of bytes
|
||||
* @proc_id - process id which wants to take lock
|
||||
* @client_id - client id
|
||||
*/
|
||||
|
||||
struct p9_getlock {
|
||||
u8 type;
|
||||
u64 start;
|
||||
u64 length;
|
||||
u32 proc_id;
|
||||
char *client_id;
|
||||
};
|
||||
|
||||
/* Structures for Protocol Operations */
|
||||
struct p9_tstatfs {
|
||||
u32 fid;
|
||||
|
||||
@@ -229,6 +229,7 @@ int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, gid_t gid,
|
||||
int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode,
|
||||
gid_t gid, struct p9_qid *qid);
|
||||
int p9_client_clunk(struct p9_fid *fid);
|
||||
int p9_client_fsync(struct p9_fid *fid, int datasync);
|
||||
int p9_client_remove(struct p9_fid *fid);
|
||||
int p9_client_read(struct p9_fid *fid, char *data, char __user *udata,
|
||||
u64 offset, u32 count);
|
||||
@@ -248,6 +249,8 @@ int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode,
|
||||
dev_t rdev, gid_t gid, struct p9_qid *);
|
||||
int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode,
|
||||
gid_t gid, struct p9_qid *);
|
||||
int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status);
|
||||
int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *fl);
|
||||
struct p9_req_t *p9_tag_lookup(struct p9_client *, u16);
|
||||
void p9_client_cb(struct p9_client *c, struct p9_req_t *req);
|
||||
|
||||
@@ -259,5 +262,6 @@ int p9_is_proto_dotu(struct p9_client *clnt);
|
||||
int p9_is_proto_dotl(struct p9_client *clnt);
|
||||
struct p9_fid *p9_client_xattrwalk(struct p9_fid *, const char *, u64 *);
|
||||
int p9_client_xattrcreate(struct p9_fid *, const char *, u64, int);
|
||||
int p9_client_readlink(struct p9_fid *fid, char **target);
|
||||
|
||||
#endif /* NET_9P_CLIENT_H */
|
||||
|
||||
Reference in New Issue
Block a user