Btrfs: do not log extents when we only log new names
When we log new names, we need to log just enough to recreate the inode during log replay, and there is no need to log extents along with it. This actually fixes a bug revealed by xfstests 241, where it shows that we're logging some extents that have not updated metadata, so we don't get proper EXTENT_DATA items to be copied to log tree. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
Родитель
292fd7fc39
Коммит
183f37fa35
|
@ -3435,7 +3435,8 @@ static int btrfs_log_inode(struct btrfs_trans_handle *trans,
|
||||||
ret = btrfs_truncate_inode_items(trans, log,
|
ret = btrfs_truncate_inode_items(trans, log,
|
||||||
inode, 0, 0);
|
inode, 0, 0);
|
||||||
} else {
|
} else {
|
||||||
fast_search = true;
|
if (inode_only == LOG_INODE_ALL)
|
||||||
|
fast_search = true;
|
||||||
max_key.type = BTRFS_XATTR_ITEM_KEY;
|
max_key.type = BTRFS_XATTR_ITEM_KEY;
|
||||||
ret = drop_objectid_items(trans, log, path, ino,
|
ret = drop_objectid_items(trans, log, path, ino,
|
||||||
BTRFS_XATTR_ITEM_KEY);
|
BTRFS_XATTR_ITEM_KEY);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче