linux/fs/ocfs2
Tao Ma 7540c1a77b ocfs2: Don't merge in 1st refcount ops of reflink.
Actually the whole reflink will touch refcount tree 2 times:
1. It will add the clusters in the extent record to the tree if it
   isn't refcounted before.
2. It will add 1 refcount to these clusters when it add these
   extent records to the tree.

So actually we shouldn't do merge in the 1st operation since the 2nd
one will soon be called and we may have to split it again. Do a merge
first and split soon is a waste of time. So we only merge in the 2nd
round. This is done by adding a new internal __ocfs2_increase_refcount
and call it with "not-merge" for 1st refcount operation in reflink.

This also has a side-effect that we don't need to worry too much about
the metadata allocation in the 2nd round since it will only merge and
no split will happen for those records.

Signed-off-by: Tao Ma <tao.ma@oracle.com>
2009-09-22 20:09:46 -07:00
..
cluster ocfs2: Add ocfs2_read_refcount_block. 2009-09-22 20:09:26 -07:00
dlm ocfs2/dlm: Wait on lockres instead of erroring cancel requests 2009-08-20 18:42:34 -07:00
Kconfig fs/Kconfig: move ocfs2 out 2009-01-22 13:15:54 +03:00
Makefile ocfs2: Add ocfs2_read_refcount_block. 2009-09-22 20:09:26 -07:00
acl.c New helper - current_umask() 2009-03-31 23:00:26 -04:00
acl.h ocfs2: add ocfs2_init_acl in mknod 2009-01-05 08:34:20 -08:00
alloc.c ocfs2: CoW refcount tree improvement. 2009-09-22 20:09:36 -07:00
alloc.h ocfs2: Add CoW support. 2009-09-22 20:09:36 -07:00
aops.c ocfs2: CoW a reflinked cluster when it is truncated. 2009-09-22 20:09:38 -07:00
aops.h ocfs2: Add CoW support. 2009-09-22 20:09:36 -07:00
blockcheck.c ocfs2: Add statistics for the checksum and ecc operations. 2009-06-03 19:15:36 -07:00
blockcheck.h ocfs2: Add statistics for the checksum and ecc operations. 2009-06-03 19:15:36 -07:00
buffer_head_io.c ocfs2: Take the inode out of the metadata read/write paths. 2009-09-04 16:07:48 -07:00
buffer_head_io.h ocfs2: Take the inode out of the metadata read/write paths. 2009-09-04 16:07:48 -07:00
dcache.c ocfs2: invalidate dentry if its dentry_lock isn't initialized. 2009-08-27 18:10:54 -07:00
dcache.h ocfs2: Fix deadlock on umount 2009-07-21 15:47:55 -07:00
dir.c ocfs2: Pass ocfs2_caching_info into ocfs_init_*_extent_tree(). 2009-09-04 16:08:13 -07:00
dir.h ocfs2: Introduce dir free space list 2009-04-03 11:39:16 -07:00
dlmglue.c ocfs2: Add new refcount tree lock resource in dlmglue. 2009-09-22 20:09:28 -07:00
dlmglue.h ocfs2: Add new refcount tree lock resource in dlmglue. 2009-09-22 20:09:28 -07:00
export.c ocfs2: Fix some printk() warnings. 2009-04-21 16:31:20 -07:00
export.h
extent_map.c ocfs2: Return extent flags for xattr value tree. 2009-09-22 20:09:39 -07:00
extent_map.h ocfs2: Return extent flags for xattr value tree. 2009-09-22 20:09:39 -07:00
file.c ocfs2: Call refcount tree remove process properly. 2009-09-22 20:09:44 -07:00
file.h ocfs2: Integrate CoW in file write. 2009-09-22 20:09:37 -07:00
heartbeat.c
heartbeat.h
inode.c ocfs2: Call refcount tree remove process properly. 2009-09-22 20:09:44 -07:00
inode.h ocfs2: Drop struct inode from ocfs2_extent_tree_operations. 2009-09-04 16:07:57 -07:00
ioctl.c
ioctl.h
journal.c ocfs2: Add metaecc for ocfs2_refcount_block. 2009-09-22 20:09:26 -07:00
journal.h ocfs2: Decrement refcount when truncating refcounted extents. 2009-09-22 20:09:35 -07:00
localalloc.c ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
localalloc.h
locks.c
locks.h
mmap.c mm: page_mkwrite change prototype to match fault 2009-04-01 08:59:14 -07:00
mmap.h
namei.c ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
namei.h
ocfs1_fs_compat.h
ocfs2.h ocfs2: Add functions for extents refcounted. 2009-09-22 20:09:34 -07:00
ocfs2_fs.h ocfs2: Add support for incrementing refcount in the tree. 2009-09-22 20:09:33 -07:00
ocfs2_lockid.h ocfs2: Add new refcount tree lock resource in dlmglue. 2009-09-22 20:09:28 -07:00
ocfs2_lockingver.h
quota.h ocfs2: Remove syncjiff field from quota info 2009-07-23 10:59:27 -07:00
quota_global.c ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
quota_local.c ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
refcounttree.c ocfs2: Don't merge in 1st refcount ops of reflink. 2009-09-22 20:09:46 -07:00
refcounttree.h ocfs2: Add reflink support for xattr. 2009-09-22 20:09:45 -07:00
resize.c ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
resize.h
slot_map.c ocfs2: Take the inode out of the metadata read/write paths. 2009-09-04 16:07:48 -07:00
slot_map.h
stack_o2cb.c ocfs2: keep index within status_map[] 2009-08-07 13:16:50 -07:00
stack_user.c ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API. 2009-06-22 14:24:30 -07:00
stackglue.c ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API. 2009-06-22 14:24:30 -07:00
stackglue.h ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API. 2009-06-22 14:24:30 -07:00
suballoc.c ocfs2: Pass ocfs2_caching_info to ocfs2_read_extent_block(). 2009-09-04 16:07:52 -07:00
suballoc.h ocfs2: fix rare stale inode errors when exporting via nfs 2009-04-03 11:39:25 -07:00
super.c ocfs2: Add refcount tree lock mechanism. 2009-09-22 20:09:29 -07:00
super.h
symlink.c ocfs2: Use nd_set_link(). 2009-05-09 10:49:40 -04:00
symlink.h
sysfile.c ocfs2/trivial: Wrap ocfs2_sysfile_cluster_lock_key within define. 2009-06-22 14:34:29 -07:00
sysfile.h
uptodate.c ocfs2: move ip_created_trans to struct ocfs2_caching_info 2009-09-04 16:07:49 -07:00
uptodate.h ocfs2: Pass struct ocfs2_caching_info to the journal functions. 2009-09-04 16:07:50 -07:00
ver.c
ver.h
xattr.c ocfs2: Modify removing xattr process for refcount. 2009-09-22 20:09:45 -07:00
xattr.h ocfs2: Add reflink support for xattr. 2009-09-22 20:09:45 -07:00