Lines Matching refs:xattr

19 			  struct ceph_inode_xattr *xattr);
575 struct ceph_inode_xattr *xattr = NULL; in __set_xattr() local
582 xattr = rb_entry(parent, struct ceph_inode_xattr, node); in __set_xattr()
583 c = strncmp(name, xattr->name, min(name_len, xattr->name_len)); in __set_xattr()
589 if (name_len == xattr->name_len) in __set_xattr()
591 else if (name_len < xattr->name_len) in __set_xattr()
596 xattr = NULL; in __set_xattr()
602 if (xattr && (flags & XATTR_CREATE)) in __set_xattr()
604 else if (!xattr && (flags & XATTR_REPLACE)) in __set_xattr()
613 if (xattr) in __set_xattr()
614 __remove_xattr(ci, xattr); in __set_xattr()
621 if (!xattr) { in __set_xattr()
623 xattr = *newxattr; in __set_xattr()
624 xattr->name = name; in __set_xattr()
625 xattr->name_len = name_len; in __set_xattr()
626 xattr->should_free_name = update_xattr; in __set_xattr()
633 if (xattr->should_free_val) in __set_xattr()
634 kfree(xattr->val); in __set_xattr()
638 name = xattr->name; in __set_xattr()
640 ci->i_xattrs.names_size -= xattr->name_len; in __set_xattr()
641 ci->i_xattrs.vals_size -= xattr->val_len; in __set_xattr()
646 xattr->val = val; in __set_xattr()
648 xattr->val = ""; in __set_xattr()
650 xattr->val_len = val_len; in __set_xattr()
651 xattr->dirty = update_xattr; in __set_xattr()
652 xattr->should_free_val = (val && update_xattr); in __set_xattr()
655 rb_link_node(&xattr->node, parent, p); in __set_xattr()
656 rb_insert_color(&xattr->node, &ci->i_xattrs.index); in __set_xattr()
661 ceph_vinop(&ci->netfs.inode), xattr, name_len, name, in __set_xattr()
673 struct ceph_inode_xattr *xattr = NULL; in __get_xattr() local
680 xattr = rb_entry(parent, struct ceph_inode_xattr, node); in __get_xattr()
681 c = strncmp(name, xattr->name, xattr->name_len); in __get_xattr()
682 if (c == 0 && name_len > xattr->name_len) in __get_xattr()
689 int len = min(xattr->val_len, MAX_XATTR_VAL_PRINT_LEN); in __get_xattr()
692 xattr->val, xattr->val_len > len ? "..." : ""); in __get_xattr()
693 return xattr; in __get_xattr()
702 static void __free_xattr(struct ceph_inode_xattr *xattr) in __free_xattr() argument
704 BUG_ON(!xattr); in __free_xattr()
706 if (xattr->should_free_name) in __free_xattr()
707 kfree(xattr->name); in __free_xattr()
708 if (xattr->should_free_val) in __free_xattr()
709 kfree(xattr->val); in __free_xattr()
711 kfree(xattr); in __free_xattr()
715 struct ceph_inode_xattr *xattr) in __remove_xattr() argument
717 if (!xattr) in __remove_xattr()
720 rb_erase(&xattr->node, &ci->i_xattrs.index); in __remove_xattr()
722 if (xattr->should_free_name) in __remove_xattr()
723 kfree(xattr->name); in __remove_xattr()
724 if (xattr->should_free_val) in __remove_xattr()
725 kfree(xattr->val); in __remove_xattr()
727 ci->i_xattrs.names_size -= xattr->name_len; in __remove_xattr()
728 ci->i_xattrs.vals_size -= xattr->val_len; in __remove_xattr()
730 kfree(xattr); in __remove_xattr()
739 struct ceph_inode_xattr *xattr = NULL; in __copy_xattr_names() local
745 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __copy_xattr_names()
746 memcpy(dest, xattr->name, xattr->name_len); in __copy_xattr_names()
747 dest[xattr->name_len] = '\0'; in __copy_xattr_names()
749 dout("dest=%s %p (%s) (%d/%d)\n", dest, xattr, xattr->name, in __copy_xattr_names()
750 xattr->name_len, ci->i_xattrs.names_size); in __copy_xattr_names()
752 dest += xattr->name_len + 1; in __copy_xattr_names()
762 struct ceph_inode_xattr *xattr = NULL; in __ceph_destroy_xattrs() local
769 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __ceph_destroy_xattrs()
773 xattr->name_len, xattr->name); in __ceph_destroy_xattrs()
776 __free_xattr(xattr); in __ceph_destroy_xattrs()
903 struct ceph_inode_xattr *xattr = NULL; in __ceph_build_xattrs_blob() local
918 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __ceph_build_xattrs_blob()
920 ceph_encode_32(&dest, xattr->name_len); in __ceph_build_xattrs_blob()
921 memcpy(dest, xattr->name, xattr->name_len); in __ceph_build_xattrs_blob()
922 dest += xattr->name_len; in __ceph_build_xattrs_blob()
923 ceph_encode_32(&dest, xattr->val_len); in __ceph_build_xattrs_blob()
924 memcpy(dest, xattr->val, xattr->val_len); in __ceph_build_xattrs_blob()
925 dest += xattr->val_len; in __ceph_build_xattrs_blob()
966 struct ceph_inode_xattr *xattr; in __ceph_getxattr() local
1030 xattr = __get_xattr(ci, name); in __ceph_getxattr()
1031 if (!xattr) in __ceph_getxattr()
1035 if (size && size < xattr->val_len) in __ceph_getxattr()
1038 err = xattr->val_len; in __ceph_getxattr()
1042 memcpy(value, xattr->val, xattr->val_len); in __ceph_getxattr()
1177 struct ceph_inode_xattr *xattr = NULL; in __ceph_setxattr() local
1209 xattr = kmalloc(sizeof(struct ceph_inode_xattr), GFP_NOFS); in __ceph_setxattr()
1210 if (!xattr) in __ceph_setxattr()
1262 flags, value ? 1 : -1, &xattr); in __ceph_setxattr()
1307 kfree(xattr); in __ceph_setxattr()