summaryrefslogtreecommitdiffstats
path: root/xlators/system/posix-acl/src/posix-acl-xattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/system/posix-acl/src/posix-acl-xattr.c')
-rw-r--r--xlators/system/posix-acl/src/posix-acl-xattr.c229
1 files changed, 111 insertions, 118 deletions
diff --git a/xlators/system/posix-acl/src/posix-acl-xattr.c b/xlators/system/posix-acl/src/posix-acl-xattr.c
index 3c8826568ca..73f22dabc3d 100644
--- a/xlators/system/posix-acl/src/posix-acl-xattr.c
+++ b/xlators/system/posix-acl/src/posix-acl-xattr.c
@@ -14,167 +14,160 @@
#include "posix-acl.h"
#include "posix-acl-xattr.h"
-
int
-posix_ace_cmp (const void *val1, const void *val2)
+posix_ace_cmp(const void *val1, const void *val2)
{
- const struct posix_ace *ace1 = NULL;
- const struct posix_ace *ace2 = NULL;
- int ret = 0;
+ const struct posix_ace *ace1 = NULL;
+ const struct posix_ace *ace2 = NULL;
+ int ret = 0;
- ace1 = val1;
- ace2 = val2;
+ ace1 = val1;
+ ace2 = val2;
- ret = (ace1->tag - ace2->tag);
- if (!ret)
- ret = (ace1->id - ace2->id);
+ ret = (ace1->tag - ace2->tag);
+ if (!ret)
+ ret = (ace1->id - ace2->id);
- return ret;
+ return ret;
}
-
void
-posix_acl_normalize (xlator_t *this, struct posix_acl *acl)
+posix_acl_normalize(xlator_t *this, struct posix_acl *acl)
{
- qsort (acl->entries, acl->count, sizeof (struct posix_ace *),
- posix_ace_cmp);
+ qsort(acl->entries, acl->count, sizeof(struct posix_ace *), posix_ace_cmp);
}
-
struct posix_acl *
-posix_acl_from_xattr (xlator_t *this, const char *xattr_buf, int xattr_size)
+posix_acl_from_xattr(xlator_t *this, const char *xattr_buf, int xattr_size)
{
- struct posix_acl_xattr_header *header = NULL;
- struct posix_acl_xattr_entry *entry = NULL;
- struct posix_acl *acl = NULL;
- struct posix_ace *ace = NULL;
- int size = 0;
- int count = 0;
- int i = 0;
+ struct posix_acl_xattr_header *header = NULL;
+ struct posix_acl_xattr_entry *entry = NULL;
+ struct posix_acl *acl = NULL;
+ struct posix_ace *ace = NULL;
+ int size = 0;
+ int count = 0;
+ int i = 0;
- size = xattr_size;
+ size = xattr_size;
- if (size < sizeof (*header))
- return NULL;
-
- size -= sizeof (*header);
+ if (size < sizeof(*header))
+ return NULL;
- if (size % sizeof (*entry))
- return NULL;
+ size -= sizeof(*header);
- count = size / sizeof (*entry);
+ if (size % sizeof(*entry))
+ return NULL;
- header = (struct posix_acl_xattr_header *) (xattr_buf);
- entry = (struct posix_acl_xattr_entry *) (header + 1);
+ count = size / sizeof(*entry);
- if (header->version != htole32 (POSIX_ACL_XATTR_VERSION))
- return NULL;
+ header = (struct posix_acl_xattr_header *)(xattr_buf);
+ entry = (struct posix_acl_xattr_entry *)(header + 1);
- acl = posix_acl_new (this, count);
- if (!acl)
- return NULL;
+ if (header->version != htole32(POSIX_ACL_XATTR_VERSION))
+ return NULL;
- ace = acl->entries;
+ acl = posix_acl_new(this, count);
+ if (!acl)
+ return NULL;
- for (i = 0; i < count; i++) {
- ace->tag = letoh16 (entry->tag);
- ace->perm = letoh16 (entry->perm);
+ ace = acl->entries;
- switch (ace->tag) {
- case POSIX_ACL_USER_OBJ:
- case POSIX_ACL_MASK:
- case POSIX_ACL_OTHER:
- ace->id = POSIX_ACL_UNDEFINED_ID;
- break;
+ for (i = 0; i < count; i++) {
+ ace->tag = letoh16(entry->tag);
+ ace->perm = letoh16(entry->perm);
- case POSIX_ACL_GROUP:
- case POSIX_ACL_USER:
- case POSIX_ACL_GROUP_OBJ:
- ace->id = letoh32 (entry->id);
- break;
+ switch (ace->tag) {
+ case POSIX_ACL_USER_OBJ:
+ case POSIX_ACL_MASK:
+ case POSIX_ACL_OTHER:
+ ace->id = POSIX_ACL_UNDEFINED_ID;
+ break;
- default:
- goto err;
- }
+ case POSIX_ACL_GROUP:
+ case POSIX_ACL_USER:
+ case POSIX_ACL_GROUP_OBJ:
+ ace->id = letoh32(entry->id);
+ break;
- ace++;
- entry++;
+ default:
+ goto err;
}
- posix_acl_normalize (this, acl);
+ ace++;
+ entry++;
+ }
+
+ posix_acl_normalize(this, acl);
- return acl;
+ return acl;
err:
- posix_acl_destroy (this, acl);
- return NULL;
+ posix_acl_destroy(this, acl);
+ return NULL;
}
-
int
-posix_acl_to_xattr (xlator_t *this, struct posix_acl *acl, char *xattr_buf,
- int xattr_size)
+posix_acl_to_xattr(xlator_t *this, struct posix_acl *acl, char *xattr_buf,
+ int xattr_size)
{
- int size = 0;
- struct posix_acl_xattr_header *header = NULL;
- struct posix_acl_xattr_entry *entry = NULL;
- struct posix_ace *ace = NULL;
- int i = 0;
-
- size = sizeof (*header) + (acl->count * sizeof (*entry));
-
- if (xattr_size < size)
- return size;
-
- header = (struct posix_acl_xattr_header *) (xattr_buf);
- entry = (struct posix_acl_xattr_entry *) (header + 1);
- ace = acl->entries;
-
- header->version = htole32 (POSIX_ACL_XATTR_VERSION);
-
- for (i = 0; i < acl->count; i++) {
- entry->tag = htole16 (ace->tag);
- entry->perm = htole16 (ace->perm);
-
- switch (ace->tag) {
- case POSIX_ACL_USER:
- case POSIX_ACL_GROUP:
- entry->id = htole32 (ace->id);
- break;
- default:
- entry->id = POSIX_ACL_UNDEFINED_ID;
- break;
- }
-
- ace++;
- entry++;
+ int size = 0;
+ struct posix_acl_xattr_header *header = NULL;
+ struct posix_acl_xattr_entry *entry = NULL;
+ struct posix_ace *ace = NULL;
+ int i = 0;
+
+ size = sizeof(*header) + (acl->count * sizeof(*entry));
+
+ if (xattr_size < size)
+ return size;
+
+ header = (struct posix_acl_xattr_header *)(xattr_buf);
+ entry = (struct posix_acl_xattr_entry *)(header + 1);
+ ace = acl->entries;
+
+ header->version = htole32(POSIX_ACL_XATTR_VERSION);
+
+ for (i = 0; i < acl->count; i++) {
+ entry->tag = htole16(ace->tag);
+ entry->perm = htole16(ace->perm);
+
+ switch (ace->tag) {
+ case POSIX_ACL_USER:
+ case POSIX_ACL_GROUP:
+ entry->id = htole32(ace->id);
+ break;
+ default:
+ entry->id = POSIX_ACL_UNDEFINED_ID;
+ break;
}
- return 0;
-}
+ ace++;
+ entry++;
+ }
+ return 0;
+}
int
-posix_acl_matches_xattr (xlator_t *this, struct posix_acl *acl, const char *buf,
- int size)
+posix_acl_matches_xattr(xlator_t *this, struct posix_acl *acl, const char *buf,
+ int size)
{
- struct posix_acl *acl2 = NULL;
- int ret = 1;
+ struct posix_acl *acl2 = NULL;
+ int ret = 1;
- acl2 = posix_acl_from_xattr (this, buf, size);
- if (!acl2)
- return 0;
+ acl2 = posix_acl_from_xattr(this, buf, size);
+ if (!acl2)
+ return 0;
- if (acl->count != acl2->count) {
- ret = 0;
- goto out;
- }
+ if (acl->count != acl2->count) {
+ ret = 0;
+ goto out;
+ }
- if (memcmp (acl->entries, acl2->entries,
- (acl->count * sizeof (struct posix_ace))))
- ret = 0;
+ if (memcmp(acl->entries, acl2->entries,
+ (acl->count * sizeof(struct posix_ace))))
+ ret = 0;
out:
- posix_acl_destroy (this, acl2);
+ posix_acl_destroy(this, acl2);
- return ret;
+ return ret;
}
-