diff options
author | David Howells <dhowells@redhat.com> | 2007-04-26 18:59:35 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-04-26 18:59:35 -0400 |
commit | 260a980317dac80182dd76140cf67c6e81d6d3dd (patch) | |
tree | 84f3e919fd33be56aad4fc57f5cb844df1a6b952 /fs/afs/afs.h | |
parent | c35eccb1f614954b10cba3f74b7c301993b2f42e (diff) |
[AFS]: Add "directory write" support.
Add support for the create, link, symlink, unlink, mkdir, rmdir and
rename VFS operations to the in-kernel AFS filesystem.
Also:
(1) Fix dentry and inode revalidation. d_revalidate should only look at
state of the dentry. Revalidation of the contents of an inode pointed to
by a dentry is now separate.
(2) Fix afs_lookup() to hash negative dentries as well as positive ones.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/afs/afs.h')
-rw-r--r-- | fs/afs/afs.h | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/fs/afs/afs.h b/fs/afs/afs.h index d959092aaf4b..52d0752265b8 100644 --- a/fs/afs/afs.h +++ b/fs/afs/afs.h | |||
@@ -106,19 +106,37 @@ struct afs_file_status { | |||
106 | 106 | ||
107 | afs_file_type_t type; /* file type */ | 107 | afs_file_type_t type; /* file type */ |
108 | unsigned nlink; /* link count */ | 108 | unsigned nlink; /* link count */ |
109 | size_t size; /* file size */ | 109 | u64 size; /* file size */ |
110 | afs_dataversion_t data_version; /* current data version */ | 110 | afs_dataversion_t data_version; /* current data version */ |
111 | unsigned author; /* author ID */ | 111 | u32 author; /* author ID */ |
112 | unsigned owner; /* owner ID */ | 112 | u32 owner; /* owner ID */ |
113 | u32 group; /* group ID */ | ||
113 | afs_access_t caller_access; /* access rights for authenticated caller */ | 114 | afs_access_t caller_access; /* access rights for authenticated caller */ |
114 | afs_access_t anon_access; /* access rights for unauthenticated caller */ | 115 | afs_access_t anon_access; /* access rights for unauthenticated caller */ |
115 | umode_t mode; /* UNIX mode */ | 116 | umode_t mode; /* UNIX mode */ |
116 | struct afs_fid parent; /* parent file ID */ | 117 | struct afs_fid parent; /* parent dir ID for non-dirs only */ |
117 | time_t mtime_client; /* last time client changed data */ | 118 | time_t mtime_client; /* last time client changed data */ |
118 | time_t mtime_server; /* last time server changed data */ | 119 | time_t mtime_server; /* last time server changed data */ |
119 | }; | 120 | }; |
120 | 121 | ||
121 | /* | 122 | /* |
123 | * AFS file status change request | ||
124 | */ | ||
125 | struct afs_store_status { | ||
126 | u32 mask; /* which bits of the struct are set */ | ||
127 | u32 mtime_client; /* last time client changed data */ | ||
128 | u32 owner; /* owner ID */ | ||
129 | u32 group; /* group ID */ | ||
130 | umode_t mode; /* UNIX mode */ | ||
131 | }; | ||
132 | |||
133 | #define AFS_SET_MTIME 0x01 /* set the mtime */ | ||
134 | #define AFS_SET_OWNER 0x02 /* set the owner ID */ | ||
135 | #define AFS_SET_GROUP 0x04 /* set the group ID (unsupported?) */ | ||
136 | #define AFS_SET_MODE 0x08 /* set the UNIX mode */ | ||
137 | #define AFS_SET_SEG_SIZE 0x10 /* set the segment size (unsupported) */ | ||
138 | |||
139 | /* | ||
122 | * AFS volume synchronisation information | 140 | * AFS volume synchronisation information |
123 | */ | 141 | */ |
124 | struct afs_volsync { | 142 | struct afs_volsync { |