Alex Elder 83eb26af0d ceph: ensure prealloc_blob is in place when removing xattr
In __ceph_build_xattrs_blob(), if a ceph inode's extended attributes
are marked dirty, all attributes recorded in its rb_tree index are
formatted into a "blob" buffer.  The target buffer is recorded in
ceph_inode->i_xattrs.prealloc_blob, and it is expected to exist and
be of sufficient size to hold the attributes.

The extended attributes are marked dirty in two cases: when a new
attribute is added to the inode; or when one is removed.  In the
former case work is done to ensure the prealloc_blob buffer is
properly set up, but in the latter it is not.

Change the logic in ceph_removexattr() so it matches what is
done in ceph_setxattr().  Note that this is done in a way that
keeps the two blocks of code nearly identical, in anticipation
of a subsequent patch that encapsulates some of this logic into
one or more helper routines.

Signed-off-by: Alex Elder <elder@dreamhost.com>
Signed-off-by: Sage Weil <sage@newdream.net>
2012-01-12 11:00:51 -08:00
..
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-08-22 17:41:48 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-07-26 16:49:47 -07:00
2011-11-02 12:53:43 +01:00
2011-07-26 13:05:28 -04:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 16:06:58 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-11-02 16:07:03 -07:00
2011-11-16 09:21:50 +01:00
2011-10-31 17:30:44 -07:00
2012-01-12 11:00:28 -08:00
2011-10-31 17:30:45 -07:00
2011-07-26 16:49:47 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:43 +01:00
2011-10-28 14:59:00 +02:00
2011-10-31 17:30:44 -07:00
2011-07-25 20:57:11 -07:00
2011-11-02 12:53:43 +01:00
2011-11-02 12:53:42 +01:00
2011-07-18 12:29:43 -04:00