[ANNOUNCE] xfs: for-next branch updated to 3481b68

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

 



Hi folks,

The for-next branch of the xfs kernel repository at

git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git

has just been updated.

I've just pushed the initial reverse block mapping support code from
Darrick out to the for-next branch. The code as it stands will work
for most cases, but it is still definitely considered experimental -
don't put any data you want to keep on rmap enable filesystems at
this point. It passes all of xfstests and other local testing
without regressions for non-rmap filesystems, so existing
filesystems should be unaffected by this merge.

Known problems when rmapbt is enabled are:

	- On disk format needs a minor tweak to keep a persistent
	  count of allocated rmapbt blocks.  This is required for
	  sensible mount time behaviour of the upcoming AG
	  reservation code, and will be merged as soon as the patch
	  Darrick posted earlier this evening is reviewed and
	  tested.
	- hangs/corrupts/assert fails at ENOSPC because of
	  insufficient free block reservations. I can reproduce this
	  with generic/274, it will be solved by the AG reservation
	  code that currently sits in the reflink patchset.
	- assert fails on generic/299. This is another ENOSPC test,
	  but we haven't got to the bottom of this failure yet.

There are still some pending code cleanups as a result of review;
these don't affect operation or the on-disk format, so they will be
merged when they are done and tested. I expect we'll end up doing a
-rc2 or -rc3 update with the bug fixes and tweaks we accumulate over
the next week or two.

The plan now is to leave this in for-next for the next two
days. If no showstoppers are reported, I will send Linus a pull
request for this code, and hopefully he'll merge it. Ultimately
merging will be his call because we are /very/ late in the cycle
with this.

It would be a good idea for anyone who has a spare cycle or two to
build rmap enabled filesysetms and smoke test them through xfstests
on their test machines in the next couple of days. Darrick's latest
userspace tree is at https://github.com/djwong/xfsprogs.git, and
IIRC I've been using the "djwong-devel" branch for testing. Darrick
can clarify which is best to use at this point.

If anyone has any questions or problems then send mail to the list
or grab djwong or myself on the #xfs channel on freenode.

-Dave.

The new head of the for-next branch is commit:

3481b68 xfs: move (and rename) the deferred bmap-free tracepoints

New Commits:

Darrick J. Wong (52):
      [0facef7] xfs: in _attrlist_by_handle, copy the cursor back to userspace
      [3dadf90] xfs: fix attr shortform structure alignment on cris
      [f4a0660] xfs: fix locking of the rt bitmap/summary inodes
      [0d30979] xfs: set *stat=1 after iroot realloc
      [e5821e5] xfs: during btree split, save new block key & ptr for future insertion
      [70b2265] xfs: add function pointers for get/update keys to the btree
      [2c813ad] xfs: support btrees with overlapping intervals for keys
      [105f7d8] xfs: introduce interval queries on btrees
      [28a8956] xfs: refactor btree owner change into a separate visit-blocks function
      [4e0cc29] xfs: move deferred operations into a separate file
      [3cd48ab] xfs: add tracepoints for the deferred ops mechanism
      [bba61cb] xfs: clean up typedef usage in the EFI/EFD handling code
      [9749fee] xfs: enable the xfs_defer mechanism to process extents to free
      [3ab78df] xfs: rework xfs_bmap_free callers to use xfs_defer_ops
      [310a75a] xfs: change xfs_bmap_{finish,cancel,init,free} -> xfs_defer_*
      [2c3234d] xfs: rename flist/free_list to dfops
      [dc42375] xfs: refactor redo intent item processing
      [ba9e780] xfs: add tracepoints and error injection for deferred extent freeing
      [df3954f] xfs: increase XFS_BTREE_MAXLEVELS to fit the rmapbt
      [b870494] xfs: introduce rmap btree definitions
      [00f4e4f] xfs: add rmap btree stats infrastructure
      [8018026] xfs: rmap btree add more reserved blocks
      [340785c] xfs: add owner field to extent allocation and freeing
      [673930c] xfs: introduce rmap extent operation stubs
      [035e00a] xfs: define the on-disk rmap btree format
      [e70d829] xfs: add rmap btree growfs support
      [fa30f03] xfs: rmap btree transaction reservations
      [5254885] xfs: rmap btree requires more reserved free space
      [4b8ed67] xfs: add rmap btree operations
      [cfed56a] xfs: support overlapping intervals in the rmap btree
      [c543838] xfs: teach rmapbt to support interval queries
      [aa966d8] xfs: add tracepoints for the rmap functions
      [0a1b0b3] xfs: add an extent to the rmap btree
      [f922cd9] xfs: remove an extent from the rmap btree
      [fb7d926] xfs: convert unwritten status of reverse mappings
      [abf0923] xfs: add rmap btree insert and delete helpers
      [5880f2d7] xfs: create rmap update intent log items
      [9e88b5d] xfs: log rmap intent items
      [f8dbebe] xfs: enable the xfs_defer mechanism to process rmaps to update
      [9c19464] xfs: propagate bmap updates to rmapbt
      [5d650e9] xfs: add rmap btree geometry feature flag
      [a650e8f] xfs: add rmap btree block detection to log recovery
      [2b0eeb5] xfs: disable XFS_IOC_SWAPEXT when rmap btree is enabled
      [04f1306] xfs: don't update rmapbt when fixing agfl
      [1c0607a] xfs: enable the rmap btree functionality
      [973b831] xfs: remove the get*keys and update_keys btree ops pointers
      [1f704b2] xfs: remove unnecesary lshift/rshift key initialization
      [c1d22ae] xfs: in btree_lshift, only allocate temporary cursor when needed
      [722e251] xfs: remove the extents array from the rmap update done log item
      [e127faf] xfs: remove unnecessary parentheses from log redo item recovery functions
      [51ce9d0] xfs: collapse single use static functions
      [3481b68] xfs: move (and rename) the deferred bmap-free tracepoints


Code Diffstat:

 fs/xfs/Makefile                  |    5 +
 fs/xfs/libxfs/xfs_alloc.c        |  149 ++++-
 fs/xfs/libxfs/xfs_alloc.h        |   52 +-
 fs/xfs/libxfs/xfs_alloc_btree.c  |   12 -
 fs/xfs/libxfs/xfs_attr.c         |   71 +--
 fs/xfs/libxfs/xfs_attr_leaf.c    |    4 +-
 fs/xfs/libxfs/xfs_attr_remote.c  |   19 +-
 fs/xfs/libxfs/xfs_bmap.c         |  241 +++----
 fs/xfs/libxfs/xfs_bmap.h         |   54 +-
 fs/xfs/libxfs/xfs_bmap_btree.c   |   32 +-
 fs/xfs/libxfs/xfs_btree.c        |  914 ++++++++++++++++++++++-----
 fs/xfs/libxfs/xfs_btree.h        |   88 ++-
 fs/xfs/libxfs/xfs_da_btree.c     |    6 +-
 fs/xfs/libxfs/xfs_da_btree.h     |    4 +-
 fs/xfs/libxfs/xfs_da_format.h    |    1 +
 fs/xfs/libxfs/xfs_defer.c        |  463 ++++++++++++++
 fs/xfs/libxfs/xfs_defer.h        |   97 +++
 fs/xfs/libxfs/xfs_dir2.c         |   15 +-
 fs/xfs/libxfs/xfs_dir2.h         |    8 +-
 fs/xfs/libxfs/xfs_format.h       |  131 +++-
 fs/xfs/libxfs/xfs_fs.h           |    1 +
 fs/xfs/libxfs/xfs_ialloc.c       |   23 +-
 fs/xfs/libxfs/xfs_ialloc.h       |    2 +-
 fs/xfs/libxfs/xfs_ialloc_btree.c |   18 +-
 fs/xfs/libxfs/xfs_inode_buf.c    |    1 +
 fs/xfs/libxfs/xfs_log_format.h   |   63 +-
 fs/xfs/libxfs/xfs_rmap.c         | 1399 +++++++++++++++++++++++++++++++++++++++++
 fs/xfs/libxfs/xfs_rmap.h         |  209 ++++++
 fs/xfs/libxfs/xfs_rmap_btree.c   |  511 +++++++++++++++
 fs/xfs/libxfs/xfs_rmap_btree.h   |   61 ++
 fs/xfs/libxfs/xfs_sb.c           |    9 +
 fs/xfs/libxfs/xfs_shared.h       |    2 +
 fs/xfs/libxfs/xfs_trans_resv.c   |   62 +-
 fs/xfs/libxfs/xfs_trans_resv.h   |   10 -
 fs/xfs/libxfs/xfs_types.h        |    4 +-
 fs/xfs/xfs_bmap_util.c           |  139 +---
 fs/xfs/xfs_bmap_util.h           |    4 +-
 fs/xfs/xfs_discard.c             |    2 +-
 fs/xfs/xfs_dquot.c               |   13 +-
 fs/xfs/xfs_error.h               |    6 +-
 fs/xfs/xfs_extfree_item.c        |   69 ++
 fs/xfs/xfs_extfree_item.h        |    3 +
 fs/xfs/xfs_filestream.c          |    3 +-
 fs/xfs/xfs_fsops.c               |  106 +++-
 fs/xfs/xfs_inode.c               |   99 +--
 fs/xfs/xfs_inode.h               |    4 +-
 fs/xfs/xfs_ioctl.c               |    6 +
 fs/xfs/xfs_iomap.c               |   31 +-
 fs/xfs/xfs_log_recover.c         |  336 +++++++---
 fs/xfs/xfs_mount.c               |    7 +-
 fs/xfs/xfs_mount.h               |    6 +
 fs/xfs/xfs_ondisk.h              |    3 +
 fs/xfs/xfs_rmap_item.c           |  536 ++++++++++++++++
 fs/xfs/xfs_rmap_item.h           |   95 +++
 fs/xfs/xfs_rtalloc.c             |   11 +-
 fs/xfs/xfs_stats.c               |    1 +
 fs/xfs/xfs_stats.h               |   18 +-
 fs/xfs/xfs_super.c               |   30 +-
 fs/xfs/xfs_symlink.c             |   25 +-
 fs/xfs/xfs_trace.c               |    2 +
 fs/xfs/xfs_trace.h               |  374 +++++++++++
 fs/xfs/xfs_trans.h               |   26 +-
 fs/xfs/xfs_trans_extfree.c       |  215 +++++--
 fs/xfs/xfs_trans_rmap.c          |  271 ++++++++
 64 files changed, 6267 insertions(+), 915 deletions(-)
 create mode 100644 fs/xfs/libxfs/xfs_defer.c
 create mode 100644 fs/xfs/libxfs/xfs_defer.h
 create mode 100644 fs/xfs/libxfs/xfs_rmap.c
 create mode 100644 fs/xfs/libxfs/xfs_rmap.h
 create mode 100644 fs/xfs/libxfs/xfs_rmap_btree.c
 create mode 100644 fs/xfs/libxfs/xfs_rmap_btree.h
 create mode 100644 fs/xfs/xfs_rmap_item.c
 create mode 100644 fs/xfs/xfs_rmap_item.h
 create mode 100644 fs/xfs/xfs_trans_rmap.c
-- 
Dave Chinner
david@xxxxxxxxxxxxx

Attachment: signature.asc
Description: Digital signature

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs

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

  Powered by Linux