summaryrefslogtreecommitdiff
path: root/fs/ocfs2/dcache.c
diff options
context:
space:
mode:
authorTao Ma <tao.ma@oracle.com>2008-10-27 06:06:24 +0800
committerMark Fasheh <mfasheh@suse.com>2008-11-10 09:51:47 -0800
commit80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913 (patch)
tree250e38e24f88aeb5bd89b5f4fca3304207eec0f1 /fs/ocfs2/dcache.c
parent4c1bbf1ba631d7db61ce3462349a3f5d14ae3009 (diff)
downloadlinux-3.10-80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913.tar.gz
linux-3.10-80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913.tar.bz2
linux-3.10-80bcaf3469b8aefd316d4ceb27d9af7cfbb0b913.zip
ocfs2/xattr: Proper hash collision handle in bucket division
In ocfs2/xattr, we must make sure the xattrs which have the same hash value exist in the same bucket so that the search schema can work. But in the old implementation, when we want to extend a bucket, we just move half number of xattrs to the new bucket. This works in most cases, but if we are lucky enough we will move 2 xattrs into 2 different buckets. This means that an xattr from the previous bucket cannot be found anymore. This patch fix this problem by finding the right position during extending the bucket and extend an empty bucket if needed. Signed-off-by: Tao Ma <tao.ma@oracle.com> Cc: Joel Becker <joel.becker@oracle.com> Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/dcache.c')
0 files changed, 0 insertions, 0 deletions