• J
    ocfs2: Set the xattr name+value pair in one place · 69a3e539
    Joel Becker 提交于
    We create two new functions on ocfs2_xa_loc, ocfs2_xa_prepare_entry()
    and ocfs2_xa_store_inline_value().
    
    ocfs2_xa_prepare_entry() makes sure that the xl_entry field of
    ocfs2_xa_loc is ready to receive an xattr.  The entry will point to an
    appropriately sized name+value region in storage.  If an existing entry
    can be reused, it will be.  If no entry already exists, it will be
    allocated.  If there isn't space to allocate it, -ENOSPC will be
    returned.
    
    ocfs2_xa_store_inline_value() stores the data that goes into the 'value'
    part of the name+value pair.  For values that don't fit directly, this
    stores the value tree root.
    
    A number of operations are added to ocfs2_xa_loc_operations to support
    these functions.  This reflects the disparate behaviors of xattr blocks
    and buckets.
    
    With these functions, the overlapping ocfs2_xattr_set_entry_local() and
    ocfs2_xattr_set_entry_normal() can be replaced with a single call
    scheme.
    Signed-off-by: NJoel Becker <joel.becker@oracle.com>
    69a3e539
xattr.c 196.9 KB