Lines Matching refs:xattr

19 			  struct ceph_inode_xattr *xattr);
538 struct ceph_inode_xattr *xattr = NULL; in __set_xattr() local
545 xattr = rb_entry(parent, struct ceph_inode_xattr, node); in __set_xattr()
546 c = strncmp(name, xattr->name, min(name_len, xattr->name_len)); in __set_xattr()
552 if (name_len == xattr->name_len) in __set_xattr()
554 else if (name_len < xattr->name_len) in __set_xattr()
559 xattr = NULL; in __set_xattr()
565 if (xattr && (flags & XATTR_CREATE)) in __set_xattr()
567 else if (!xattr && (flags & XATTR_REPLACE)) in __set_xattr()
576 if (xattr) in __set_xattr()
577 __remove_xattr(ci, xattr); in __set_xattr()
584 if (!xattr) { in __set_xattr()
586 xattr = *newxattr; in __set_xattr()
587 xattr->name = name; in __set_xattr()
588 xattr->name_len = name_len; in __set_xattr()
589 xattr->should_free_name = update_xattr; in __set_xattr()
596 if (xattr->should_free_val) in __set_xattr()
597 kfree(xattr->val); in __set_xattr()
601 name = xattr->name; in __set_xattr()
603 ci->i_xattrs.names_size -= xattr->name_len; in __set_xattr()
604 ci->i_xattrs.vals_size -= xattr->val_len; in __set_xattr()
609 xattr->val = val; in __set_xattr()
611 xattr->val = ""; in __set_xattr()
613 xattr->val_len = val_len; in __set_xattr()
614 xattr->dirty = update_xattr; in __set_xattr()
615 xattr->should_free_val = (val && update_xattr); in __set_xattr()
618 rb_link_node(&xattr->node, parent, p); in __set_xattr()
619 rb_insert_color(&xattr->node, &ci->i_xattrs.index); in __set_xattr()
624 ceph_vinop(&ci->vfs_inode), xattr, name_len, name, val_len, val); in __set_xattr()
634 struct ceph_inode_xattr *xattr = NULL; in __get_xattr() local
641 xattr = rb_entry(parent, struct ceph_inode_xattr, node); in __get_xattr()
642 c = strncmp(name, xattr->name, xattr->name_len); in __get_xattr()
643 if (c == 0 && name_len > xattr->name_len) in __get_xattr()
651 xattr->val_len, xattr->val); in __get_xattr()
652 return xattr; in __get_xattr()
661 static void __free_xattr(struct ceph_inode_xattr *xattr) in __free_xattr() argument
663 BUG_ON(!xattr); in __free_xattr()
665 if (xattr->should_free_name) in __free_xattr()
666 kfree(xattr->name); in __free_xattr()
667 if (xattr->should_free_val) in __free_xattr()
668 kfree(xattr->val); in __free_xattr()
670 kfree(xattr); in __free_xattr()
674 struct ceph_inode_xattr *xattr) in __remove_xattr() argument
676 if (!xattr) in __remove_xattr()
679 rb_erase(&xattr->node, &ci->i_xattrs.index); in __remove_xattr()
681 if (xattr->should_free_name) in __remove_xattr()
682 kfree(xattr->name); in __remove_xattr()
683 if (xattr->should_free_val) in __remove_xattr()
684 kfree(xattr->val); in __remove_xattr()
686 ci->i_xattrs.names_size -= xattr->name_len; in __remove_xattr()
687 ci->i_xattrs.vals_size -= xattr->val_len; in __remove_xattr()
689 kfree(xattr); in __remove_xattr()
698 struct ceph_inode_xattr *xattr = NULL; in __copy_xattr_names() local
704 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __copy_xattr_names()
705 memcpy(dest, xattr->name, xattr->name_len); in __copy_xattr_names()
706 dest[xattr->name_len] = '\0'; in __copy_xattr_names()
708 dout("dest=%s %p (%s) (%d/%d)\n", dest, xattr, xattr->name, in __copy_xattr_names()
709 xattr->name_len, ci->i_xattrs.names_size); in __copy_xattr_names()
711 dest += xattr->name_len + 1; in __copy_xattr_names()
721 struct ceph_inode_xattr *xattr = NULL; in __ceph_destroy_xattrs() local
728 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __ceph_destroy_xattrs()
732 xattr->name_len, xattr->name); in __ceph_destroy_xattrs()
735 __free_xattr(xattr); in __ceph_destroy_xattrs()
862 struct ceph_inode_xattr *xattr = NULL; in __ceph_build_xattrs_blob() local
877 xattr = rb_entry(p, struct ceph_inode_xattr, node); in __ceph_build_xattrs_blob()
879 ceph_encode_32(&dest, xattr->name_len); in __ceph_build_xattrs_blob()
880 memcpy(dest, xattr->name, xattr->name_len); in __ceph_build_xattrs_blob()
881 dest += xattr->name_len; in __ceph_build_xattrs_blob()
882 ceph_encode_32(&dest, xattr->val_len); in __ceph_build_xattrs_blob()
883 memcpy(dest, xattr->val, xattr->val_len); in __ceph_build_xattrs_blob()
884 dest += xattr->val_len; in __ceph_build_xattrs_blob()
925 struct ceph_inode_xattr *xattr; in __ceph_getxattr() local
980 xattr = __get_xattr(ci, name); in __ceph_getxattr()
981 if (!xattr) in __ceph_getxattr()
985 if (size && size < xattr->val_len) in __ceph_getxattr()
988 err = xattr->val_len; in __ceph_getxattr()
992 memcpy(value, xattr->val, xattr->val_len); in __ceph_getxattr()
1127 struct ceph_inode_xattr *xattr = NULL; in __ceph_setxattr() local
1159 xattr = kmalloc(sizeof(struct ceph_inode_xattr), GFP_NOFS); in __ceph_setxattr()
1160 if (!xattr) in __ceph_setxattr()
1208 flags, value ? 1 : -1, &xattr); in __ceph_setxattr()
1253 kfree(xattr); in __ceph_setxattr()