[PATCH 0/4] update bytes_may_use timely to avoid false ENOSPC issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Currently in btrfs, for data space reservation, it does not update
bytes_may_use in btrfs_update_reserved_bytes() and the decrease operation
will be delayed to be done in extent_clear_unlock_delalloc(), for
fallocate(2), decrease operation is even delayed to be done in end
of btrfs_fallocate(), which is too late. Obviously such delay will
cause unnecessary pressure to enospc system, in [PATCH 4/4], there is
a simpel test script that can reveal such false ENOSPC bug.

So in this patch set, it will remove RESERVE_FREE, RESERVE_ALLOC and
RESERVE_ALLOC_NO_ACCOUNT, and we always update bytes_may_use timely.

I'll also commit a fstests test case for this issue.

Wang Xiaoguang (4):
  btrfs: use correct offset for reloc_inode in
    prealloc_file_extent_cluster()
  btrfs: divide btrfs_update_reserved_bytes() into two functions
  btrfs: introduce new EXTENT_CLEAR_DATA_RESV flag
  btrfs: update btrfs_space_info's bytes_may_use timely

 fs/btrfs/ctree.h       |   2 +-
 fs/btrfs/extent-tree.c | 131 ++++++++++++++++++++++++-------------------------
 fs/btrfs/extent_io.h   |   1 +
 fs/btrfs/file.c        |  26 +++++-----
 fs/btrfs/inode-map.c   |   3 +-
 fs/btrfs/inode.c       |  37 ++++++++++----
 fs/btrfs/relocation.c  |  17 +++++--
 7 files changed, 123 insertions(+), 94 deletions(-)

-- 
2.9.0



--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux