aboutsummaryrefslogtreecommitdiffstats
path: root/fs/afs/afs.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2007-04-26 18:59:35 -0400
committerDavid S. Miller <davem@davemloft.net>2007-04-26 18:59:35 -0400
commit260a980317dac80182dd76140cf67c6e81d6d3dd (patch)
tree84f3e919fd33be56aad4fc57f5cb844df1a6b952 /fs/afs/afs.h
parentc35eccb1f614954b10cba3f74b7c301993b2f42e (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.h26
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 */
125struct 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 */
124struct afs_volsync { 142struct afs_volsync {