diff options
author | Andreas Gruenbacher <agruen@suse.de> | 2005-06-22 13:16:27 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2005-06-22 16:07:24 -0400 |
commit | b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704 (patch) | |
tree | 83eb405f3ff78c17695999df38c99484e3aee01f /include/linux/nfs_fs.h | |
parent | a257cdd0e2179630d3201c32ba14d7fcb3c3a055 (diff) |
[PATCH] NFS: Add support for NFSv3 ACLs
This adds acl support fo nfs clients via the NFSACL protocol extension, by
implementing the getxattr, listxattr, setxattr, and removexattr iops for the
system.posix_acl_access and system.posix_acl_default attributes. This patch
implements a dumb version that uses no caching (and thus adds some overhead).
(Another patch in this patchset adds caching as well.)
Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
Acked-by: Olaf Kirch <okir@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_fs.h')
-rw-r--r-- | include/linux/nfs_fs.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index d2b5d7e0e85..3a5e442ac77 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h | |||
@@ -301,6 +301,9 @@ extern u32 root_nfs_parse_addr(char *name); /*__init*/ | |||
301 | * linux/fs/nfs/file.c | 301 | * linux/fs/nfs/file.c |
302 | */ | 302 | */ |
303 | extern struct inode_operations nfs_file_inode_operations; | 303 | extern struct inode_operations nfs_file_inode_operations; |
304 | #ifdef CONFIG_NFS_V3 | ||
305 | extern struct inode_operations nfs3_file_inode_operations; | ||
306 | #endif /* CONFIG_NFS_V3 */ | ||
304 | extern struct file_operations nfs_file_operations; | 307 | extern struct file_operations nfs_file_operations; |
305 | extern struct address_space_operations nfs_file_aops; | 308 | extern struct address_space_operations nfs_file_aops; |
306 | 309 | ||
@@ -316,6 +319,22 @@ static inline struct rpc_cred *nfs_file_cred(struct file *file) | |||
316 | } | 319 | } |
317 | 320 | ||
318 | /* | 321 | /* |
322 | * linux/fs/nfs/xattr.c | ||
323 | */ | ||
324 | #ifdef CONFIG_NFS_V3_ACL | ||
325 | extern ssize_t nfs3_listxattr(struct dentry *, char *, size_t); | ||
326 | extern ssize_t nfs3_getxattr(struct dentry *, const char *, void *, size_t); | ||
327 | extern int nfs3_setxattr(struct dentry *, const char *, | ||
328 | const void *, size_t, int); | ||
329 | extern int nfs3_removexattr (struct dentry *, const char *name); | ||
330 | #else | ||
331 | # define nfs3_listxattr NULL | ||
332 | # define nfs3_getxattr NULL | ||
333 | # define nfs3_setxattr NULL | ||
334 | # define nfs3_removexattr NULL | ||
335 | #endif | ||
336 | |||
337 | /* | ||
319 | * linux/fs/nfs/direct.c | 338 | * linux/fs/nfs/direct.c |
320 | */ | 339 | */ |
321 | extern ssize_t nfs_direct_IO(int, struct kiocb *, const struct iovec *, loff_t, | 340 | extern ssize_t nfs_direct_IO(int, struct kiocb *, const struct iovec *, loff_t, |
@@ -329,6 +348,9 @@ extern ssize_t nfs_file_direct_write(struct kiocb *iocb, const char __user *buf, | |||
329 | * linux/fs/nfs/dir.c | 348 | * linux/fs/nfs/dir.c |
330 | */ | 349 | */ |
331 | extern struct inode_operations nfs_dir_inode_operations; | 350 | extern struct inode_operations nfs_dir_inode_operations; |
351 | #ifdef CONFIG_NFS_V3 | ||
352 | extern struct inode_operations nfs3_dir_inode_operations; | ||
353 | #endif /* CONFIG_NFS_V3 */ | ||
332 | extern struct file_operations nfs_dir_operations; | 354 | extern struct file_operations nfs_dir_operations; |
333 | extern struct dentry_operations nfs_dentry_operations; | 355 | extern struct dentry_operations nfs_dentry_operations; |
334 | 356 | ||
@@ -450,6 +472,15 @@ static inline void nfs_readdata_free(struct nfs_read_data *p) | |||
450 | extern void nfs_readdata_release(struct rpc_task *task); | 472 | extern void nfs_readdata_release(struct rpc_task *task); |
451 | 473 | ||
452 | /* | 474 | /* |
475 | * linux/fs/nfs3proc.c | ||
476 | */ | ||
477 | #ifdef CONFIG_NFS_V3_ACL | ||
478 | extern struct posix_acl *nfs3_proc_getacl(struct inode *inode, int type); | ||
479 | extern int nfs3_proc_setacl(struct inode *inode, int type, | ||
480 | struct posix_acl *acl); | ||
481 | #endif /* CONFIG_NFS_V3_ACL */ | ||
482 | |||
483 | /* | ||
453 | * linux/fs/mount_clnt.c | 484 | * linux/fs/mount_clnt.c |
454 | * (Used only by nfsroot module) | 485 | * (Used only by nfsroot module) |
455 | */ | 486 | */ |