Lines Matching refs:i_xattrs
579 p = &ci->i_xattrs.index.rb_node;
628 ci->i_xattrs.count++;
629 dout("%s count=%d\n", __func__, ci->i_xattrs.count);
640 ci->i_xattrs.names_size -= xattr->name_len;
641 ci->i_xattrs.vals_size -= xattr->val_len;
643 ci->i_xattrs.names_size += name_len;
644 ci->i_xattrs.vals_size += val_len;
656 rb_insert_color(&xattr->node, &ci->i_xattrs.index);
677 p = &ci->i_xattrs.index.rb_node;
720 rb_erase(&xattr->node, &ci->i_xattrs.index);
727 ci->i_xattrs.names_size -= xattr->name_len;
728 ci->i_xattrs.vals_size -= xattr->val_len;
729 ci->i_xattrs.count--;
741 p = rb_first(&ci->i_xattrs.index);
742 dout("__copy_xattr_names count=%d\n", ci->i_xattrs.count);
750 xattr->name_len, ci->i_xattrs.names_size);
764 p = rb_first(&ci->i_xattrs.index);
774 rb_erase(tmp, &ci->i_xattrs.index);
779 ci->i_xattrs.names_size = 0;
780 ci->i_xattrs.vals_size = 0;
781 ci->i_xattrs.index_version = 0;
782 ci->i_xattrs.count = 0;
783 ci->i_xattrs.index = RB_ROOT;
802 ci->i_xattrs.blob ? (int)ci->i_xattrs.blob->vec.iov_len : 0);
804 if (ci->i_xattrs.index_version >= ci->i_xattrs.version)
811 if (ci->i_xattrs.blob && ci->i_xattrs.blob->vec.iov_len > 4) {
812 p = ci->i_xattrs.blob->vec.iov_base;
813 end = p + ci->i_xattrs.blob->vec.iov_len;
815 xattr_version = ci->i_xattrs.version;
832 if (ci->i_xattrs.version != xattr_version) {
858 ci->i_xattrs.index_version = ci->i_xattrs.version;
859 ci->i_xattrs.dirty = false;
870 ci->i_xattrs.names_size = 0;
881 int size = 4 + ci->i_xattrs.count*(4 + 4) +
882 ci->i_xattrs.names_size +
883 ci->i_xattrs.vals_size;
885 ci->i_xattrs.count, ci->i_xattrs.names_size,
886 ci->i_xattrs.vals_size);
896 * and swap into place. It returns the old i_xattrs.blob (or NULL) so
908 if (ci->i_xattrs.dirty) {
911 BUG_ON(need > ci->i_xattrs.prealloc_blob->alloc_len);
913 p = rb_first(&ci->i_xattrs.index);
914 dest = ci->i_xattrs.prealloc_blob->vec.iov_base;
916 ceph_encode_32(&dest, ci->i_xattrs.count);
931 ci->i_xattrs.prealloc_blob->vec.iov_len =
932 dest - ci->i_xattrs.prealloc_blob->vec.iov_base;
934 if (ci->i_xattrs.blob)
935 old_blob = ci->i_xattrs.blob;
936 ci->i_xattrs.blob = ci->i_xattrs.prealloc_blob;
937 ci->i_xattrs.prealloc_blob = NULL;
938 ci->i_xattrs.dirty = false;
939 ci->i_xattrs.version++;
1004 ci->i_xattrs.version, ci->i_xattrs.index_version);
1006 if (ci->i_xattrs.version == 0 ||
1063 ci->i_xattrs.version, ci->i_xattrs.index_version);
1065 if (ci->i_xattrs.version == 0 ||
1079 namelen = ci->i_xattrs.names_size + ci->i_xattrs.count;
1151 dout("xattr.ver (before): %lld\n", ci->i_xattrs.version);
1154 dout("xattr.ver (after): %lld\n", ci->i_xattrs.version);
1221 if ((ci->i_xattrs.version == 0) || !(issued & CEPH_CAP_XATTR_EXCL) ||
1224 __func__, ci->i_xattrs.version, required_blob_size,
1243 if (!ci->i_xattrs.prealloc_blob ||
1244 required_blob_size > ci->i_xattrs.prealloc_blob->alloc_len) {
1255 if (ci->i_xattrs.prealloc_blob)
1256 old_blob = ci->i_xattrs.prealloc_blob;
1257 ci->i_xattrs.prealloc_blob = blob;
1267 ci->i_xattrs.dirty = true;
1352 !(ci->i_xattrs.version > 0 &&