diff options
author | Josef Bacik <jbacik@redhat.com> | 2007-11-19 10:18:17 -0500 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:03:57 -0400 |
commit | 1caf9342fc71d020e788a59598a44d4ea0136b36 (patch) | |
tree | e54d756bd124515b262f56b22cd9c169b8b00027 /fs/btrfs/acl.c | |
parent | 5cf664263b05beb080bf95037e4c3bd50c80b096 (diff) |
Btrfs: Make ACLs return EOPNOTSUPP for now
There was a slight problem with ACL's returning EINVAL when you tried to set an
ACL. This isn't correct, we should be returning EOPNOTSUPP, so I did a very
ugly thing and just commented everybody out and made them return EOPNOTSUPP.
This is only temporary, I'm going back to implement ACL's, but Chris wants to
push out a release so this will suffice for now.
Also Yan suggested setting reada to -1 in the delete case to enable backwards
readahead, and in the listxattr case I moved path->reada = 2; to after the if
(!path) check so we can avoid a possible null dereference. Thank you,
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/acl.c')
-rw-r--r-- | fs/btrfs/acl.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index aee9f0657c35..889ba89d3f9f 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c | |||
@@ -23,32 +23,50 @@ | |||
23 | #include "ctree.h" | 23 | #include "ctree.h" |
24 | #include "xattr.h" | 24 | #include "xattr.h" |
25 | 25 | ||
26 | /* | ||
27 | * FIXME: At this point this is all place holder stuff, we just return | ||
28 | * -EOPNOTSUPP so cp won't complain when it tries to copy over a file with an | ||
29 | * acl on it. | ||
30 | */ | ||
31 | |||
26 | static int btrfs_xattr_acl_access_get(struct inode *inode, const char *name, | 32 | static int btrfs_xattr_acl_access_get(struct inode *inode, const char *name, |
27 | void *value, size_t size) | 33 | void *value, size_t size) |
28 | { | 34 | { |
35 | /* | ||
29 | return btrfs_xattr_get(inode, BTRFS_XATTR_INDEX_POSIX_ACL_ACCESS, name, | 36 | return btrfs_xattr_get(inode, BTRFS_XATTR_INDEX_POSIX_ACL_ACCESS, name, |
30 | value, size); | 37 | value, size); |
38 | */ | ||
39 | return -EOPNOTSUPP; | ||
31 | } | 40 | } |
32 | 41 | ||
33 | static int btrfs_xattr_acl_access_set(struct inode *inode, const char *name, | 42 | static int btrfs_xattr_acl_access_set(struct inode *inode, const char *name, |
34 | const void *value, size_t size, int flags) | 43 | const void *value, size_t size, int flags) |
35 | { | 44 | { |
45 | /* | ||
36 | return btrfs_xattr_set(inode, BTRFS_XATTR_INDEX_POSIX_ACL_ACCESS, name, | 46 | return btrfs_xattr_set(inode, BTRFS_XATTR_INDEX_POSIX_ACL_ACCESS, name, |
37 | value, size, flags); | 47 | value, size, flags); |
48 | */ | ||
49 | return -EOPNOTSUPP; | ||
38 | } | 50 | } |
39 | 51 | ||
40 | static int btrfs_xattr_acl_default_get(struct inode *inode, const char *name, | 52 | static int btrfs_xattr_acl_default_get(struct inode *inode, const char *name, |
41 | void *value, size_t size) | 53 | void *value, size_t size) |
42 | { | 54 | { |
55 | /* | ||
43 | return btrfs_xattr_get(inode, BTRFS_XATTR_INDEX_POSIX_ACL_DEFAULT, | 56 | return btrfs_xattr_get(inode, BTRFS_XATTR_INDEX_POSIX_ACL_DEFAULT, |
44 | name, value, size); | 57 | name, value, size); |
58 | */ | ||
59 | return -EOPNOTSUPP; | ||
45 | } | 60 | } |
46 | 61 | ||
47 | static int btrfs_xattr_acl_default_set(struct inode *inode, const char *name, | 62 | static int btrfs_xattr_acl_default_set(struct inode *inode, const char *name, |
48 | const void *value, size_t size, int flags) | 63 | const void *value, size_t size, int flags) |
49 | { | 64 | { |
65 | /* | ||
50 | return btrfs_xattr_set(inode, BTRFS_XATTR_INDEX_POSIX_ACL_DEFAULT, | 66 | return btrfs_xattr_set(inode, BTRFS_XATTR_INDEX_POSIX_ACL_DEFAULT, |
51 | name, value, size, flags); | 67 | name, value, size, flags); |
68 | */ | ||
69 | return -EOPNOTSUPP; | ||
52 | } | 70 | } |
53 | 71 | ||
54 | struct xattr_handler btrfs_xattr_acl_default_handler = { | 72 | struct xattr_handler btrfs_xattr_acl_default_handler = { |