kernel_optimize_test/fs
Liu Bo 95c80bb1f6 Btrfs: MOD_LOG_KEY_REMOVE_WHILE_MOVING never change node's nritems
Key MOD_LOG_KEY_REMOVE_WHILE_MOVING means that we're doing memmove inside
an extent buffer node, and the node's number of items remains unchanged
(unless we are inserting a single pointer, but we have MOD_LOG_KEY_ADD for that).

So we don't need to increase node's number of items during rewinding,
otherwise we may get an node larger than leafsize and cause general protection
errors later.

Here is the details,
- If we do memory move for inserting a single pointer, we need to
  add node's nritems by one, and we honor MOD_LOG_KEY_ADD for adding.

- If we do memory move for deleting a single pointer, we need to
  decrease node's nritems by one, and we honor MOD_LOG_KEY_REMOVE for
  deleting.

- If we do memory move for balance left/right, we need to decrease
  node's nritems, and we honor MOD_LOG_KEY_REMOVE for balaning.

Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2012-12-11 13:31:33 -05:00
..
9p
adfs
affs
afs
autofs4
befs
bfs
btrfs Btrfs: MOD_LOG_KEY_REMOVE_WHILE_MOVING never change node's nritems 2012-12-11 13:31:33 -05:00
cachefiles
ceph
cifs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-12-01 13:29:55 -08:00
coda
configfs
cramfs
debugfs
devpts
dlm
ecryptfs
efs
exofs
exportfs
ext2
ext3 ext3: Avoid underflow of in ext3_trim_fs() 2012-11-19 21:36:12 +01:00
ext4
fat
freevxfs
fscache
fuse
gfs2
hfs
hfsplus
hostfs
hpfs
hppfs
hugetlbfs
isofs
jbd jbd: Fix lock ordering bug in journal_unmap_buffer() 2012-11-23 15:17:18 +01:00
jbd2
jffs2
jfs
lockd
logfs
minix
ncpfs
nfs nfs_lookup_revalidate(): fix a leak 2012-11-29 22:04:36 -05:00
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2
omfs
openpromfs
proc proc: check vma->vm_file before dereferencing 2012-11-26 17:41:24 -08:00
pstore
qnx4
qnx6
quota
ramfs
reiserfs reiserfs: Move quota calls out of write lock 2012-11-19 21:34:33 +01:00
romfs
squashfs
sysfs
sysv
ubifs
udf
ufs
xfs
aio.c
anon_inodes.c
attr.c
bad_inode.c
binfmt_aout.c
binfmt_elf_fdpic.c
binfmt_elf.c
binfmt_em86.c
binfmt_flat.c
binfmt_misc.c
binfmt_script.c
binfmt_som.c
bio-integrity.c
bio.c
block_dev.c vfs: fix O_DIRECT read past end of block device 2012-12-08 08:28:26 -08:00
buffer.c vfs: clear to the end of the buffer on partial buffer reads 2012-12-05 10:32:59 -08:00
char_dev.c
compat_binfmt_elf.c
compat_ioctl.c
compat.c
coredump.c
coredump.h
dcache.c
dcookies.c
direct-io.c direct-io: don't read inode->i_blkbits multiple times 2012-11-29 12:38:44 -08:00
drop_caches.c
eventfd.c
eventpoll.c
exec.c
fcntl.c
fhandle.c
fifo.c
file_table.c
file.c fix off-by-one in argument passed by iterate_fd() to callbacks 2012-11-29 23:01:30 -05:00
filesystems.c
fs_struct.c
fs-writeback.c writeback: put unused inodes to LRU after writeback completion 2012-11-26 17:41:24 -08:00
generic_acl.c
inode.c writeback: put unused inodes to LRU after writeback completion 2012-11-26 17:41:24 -08:00
internal.h writeback: put unused inodes to LRU after writeback completion 2012-11-26 17:41:24 -08:00
ioctl.c
ioprio.c
Kconfig
Kconfig.binfmt
libfs.c
locks.c
Makefile
mbcache.c
mount.h
mpage.c
namei.c lookup_one_len: don't accept . and .. 2012-11-29 22:17:21 -05:00
namespace.c
no-block.c
open.c
pipe.c
pnode.c
pnode.h
posix_acl.c
proc_namespace.c
read_write.c
read_write.h
readdir.c
select.c
seq_file.c
signalfd.c
splice.c
stack.c
stat.c
statfs.c
super.c
sync.c
timerfd.c
utimes.c
xattr_acl.c
xattr.c