diff options
author | Tao Ma <tao.ma@oracle.com> | 2009-08-17 23:43:49 -0400 |
---|---|---|
committer | Joel Becker <joel.becker@oracle.com> | 2009-09-22 23:09:44 -0400 |
commit | 8b2c0dba5159570af5721d40490f6c529d721500 (patch) | |
tree | faca76fab3c9a65ba8e7be3aa93d02e4ff53f0cf /fs/ocfs2/xattr.h | |
parent | 0129241e2b3b90ff83a8c774353e5612d84bd493 (diff) |
ocfs2: Call refcount tree remove process properly.
Now with xattr refcount support, we need to check whether
we have xattr refcounted before we remove the refcount tree.
Now the mechanism is:
1) Check whether i_clusters == 0, if no, exit.
2) check whether we have i_xattr_loc in dinode. if yes, exit.
2) Check whether we have inline xattr stored outside, if yes, exit.
4) Remove the tree.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/xattr.h')
-rw-r--r-- | fs/ocfs2/xattr.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h index a3295d705cea..e74703f56dca 100644 --- a/fs/ocfs2/xattr.h +++ b/fs/ocfs2/xattr.h | |||
@@ -55,6 +55,8 @@ int ocfs2_xattr_set_handle(handle_t *, struct inode *, struct buffer_head *, | |||
55 | int, const char *, const void *, size_t, int, | 55 | int, const char *, const void *, size_t, int, |
56 | struct ocfs2_alloc_context *, | 56 | struct ocfs2_alloc_context *, |
57 | struct ocfs2_alloc_context *); | 57 | struct ocfs2_alloc_context *); |
58 | int ocfs2_has_inline_xattr_value_outside(struct inode *inode, | ||
59 | struct ocfs2_dinode *di); | ||
58 | int ocfs2_xattr_remove(struct inode *, struct buffer_head *); | 60 | int ocfs2_xattr_remove(struct inode *, struct buffer_head *); |
59 | int ocfs2_init_security_get(struct inode *, struct inode *, | 61 | int ocfs2_init_security_get(struct inode *, struct inode *, |
60 | struct ocfs2_security_xattr_info *); | 62 | struct ocfs2_security_xattr_info *); |