linux/fs/ocfs2
Tao Ma 80bcaf3469 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>
2008-11-10 09:51:47 -08:00
..
cluster [PATCH] sanitize blkdev_get() and friends 2008-10-21 07:49:06 -04:00
dlm SL*B: drop kmem cache argument from constructor 2008-07-26 12:00:07 -07:00
alloc.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
alloc.h ocfs2: Change ocfs2_get_*_extent_tree() to ocfs2_init_*_extent_tree() 2008-10-13 16:57:05 -07:00
aops.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
aops.h ocfs2: convert to new aops 2007-10-16 09:42:58 -07:00
buffer_head_io.c ocfs2: Make cached block reads the common case. 2008-10-14 11:58:22 -07:00
buffer_head_io.h ocfs2: Make cached block reads the common case. 2008-10-14 11:58:22 -07:00
dcache.c ocfs2: Remove mount/unmount votes 2008-01-25 14:45:34 -08:00
dcache.h
dir.c ocfs2: Make cached block reads the common case. 2008-10-14 11:58:22 -07:00
dir.h ocfs2: Rename cleanups 2007-10-12 11:54:38 -07:00
dlmglue.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
dlmglue.h ocfs2: Break out stackglue into modules. 2008-04-18 08:56:05 -07:00
export.c [PATCH] switch all filesystems over to d_obtain_alias 2008-10-23 05:13:01 -04:00
export.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
extent_map.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
extent_map.h ocfs2: Add extent tree operation for xattr value btrees 2008-10-13 16:57:01 -07:00
file.c ocfs2: Fix check of return value of ocfs2_start_trans() 2008-11-10 09:51:46 -08:00
file.h ocfs2: Make high level btree extend code generic 2008-10-13 13:57:59 -07:00
heartbeat.c ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
heartbeat.h ocfs2: Move o2hb functionality into the stack glue. 2008-04-18 08:56:04 -07:00
inode.c ocfs2: Set journal descriptor to NULL after journal shutdown 2008-11-10 09:51:47 -08:00
inode.h ocfs2: Move ocfs2_bread() into dir.c 2008-10-14 11:58:03 -07:00
ioctl.c ocfs2: Don't check for NULL before brelse() 2008-10-13 17:02:44 -07:00
ioctl.h ocfs2: Convert ocfs2 over to unlocked_ioctl 2008-04-18 08:56:11 -07:00
journal.c ocfs2: Set journal descriptor to NULL after journal shutdown 2008-11-10 09:51:47 -08:00
journal.h ocfs2: Switch over to JBD2. 2008-10-13 17:02:43 -07:00
localalloc.c ocfs2: Make cached block reads the common case. 2008-10-14 11:58:22 -07:00
localalloc.h ocfs2: throttle back local alloc when low on disk space 2008-10-13 13:57:57 -07:00
locks.c ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
locks.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
Makefile ocfs2: Move trusted and user attribute support into xattr.c 2008-10-13 17:02:44 -07:00
mmap.c ocfs2: return 0 in page_mkwrite to let VFS retry. 2008-11-10 09:51:47 -08:00
mmap.h
namei.c ocfs2: Let inode be really deleted when ocfs2_mknod_locked() fails 2008-11-10 09:51:46 -08:00
namei.h ocfs2: Move directory manipulation code into dir.c 2007-10-12 11:54:36 -07:00
ocfs1_fs_compat.h fs/: Spelling fixes 2008-02-03 17:33:42 +02:00
ocfs2_fs.h ocfs2: Fix some typos in xattr annotations. 2008-11-10 09:51:46 -08:00
ocfs2_jbd_compat.h ocfs2: Switch over to JBD2. 2008-10-13 17:02:43 -07:00
ocfs2_lockid.h ocfs2: Change mlog_bug_on to BUG_ON in ocfs2_lockid.h 2008-04-18 08:56:07 -07:00
ocfs2_lockingver.h ocfs2: Negotiate locking protocol versions. 2008-02-06 16:11:29 -08:00
ocfs2.h ocfs2: Check xattr block signatures properly. 2008-11-10 09:51:44 -08:00
resize.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
resize.h [PATCH 2/2] ocfs2: Implement group add for online resize 2008-01-25 15:04:24 -08:00
slot_map.c ocfs2: Make cached block reads the common case. 2008-10-14 11:58:22 -07:00
slot_map.h ocfs2: De-magic the in-memory slot map. 2008-04-18 08:56:03 -07:00
stack_o2cb.c ocfs2: Remove ->hangup() from stack glue operations. 2008-06-16 10:46:52 -07:00
stack_user.c ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
stackglue.c ocfs2: Remove pointless !! 2008-10-13 17:02:44 -07:00
stackglue.h ocfs2: POSIX file locks support 2008-10-13 13:57:57 -07:00
suballoc.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
suballoc.h ocfs2: Limit inode allocation to 32bits. 2008-10-13 16:57:07 -07:00
super.c ocfs2: Don't check for NULL before brelse() 2008-10-13 17:02:44 -07:00
super.h ocfs2: use s_maxbytes directly in ocfs2_change_file_space() 2007-08-09 17:25:07 -07:00
symlink.c ocfs2: Simplify ocfs2_read_block() 2008-10-14 11:51:57 -07:00
symlink.h [PATCH] mark struct inode_operations const 2 2007-02-12 09:48:46 -08:00
sysfile.c ocfs2: Silence false lockdep warnings 2008-01-25 15:05:44 -08:00
sysfile.h
uptodate.c ocfs2: use smaller counters in ocfs2_remove_xattr_clusters_from_cache 2008-10-13 17:02:44 -07:00
uptodate.h ocfs2: Add helper function in uptodate.c for removing xattr clusters 2008-10-13 13:57:59 -07:00
ver.c ocfs2: bump version number 2008-01-25 15:05:46 -08:00
ver.h
xattr.c ocfs2/xattr: Proper hash collision handle in bucket division 2008-11-10 09:51:47 -08:00
xattr.h ocfs2: fix function declaration and definition in xattr 2008-11-10 09:51:44 -08:00