xfs
[Top] [All Lists]

[XFS updates] XFS development tree branch, v3.0-xfs_dmapi, created. v3.0

To: xfs@xxxxxxxxxxx
Subject: [XFS updates] XFS development tree branch, v3.0-xfs_dmapi, created. v3.0-21-gf7fe0c1
From: xfs@xxxxxxxxxxx
Date: Thu, 12 Apr 2012 11:40:26 -0500
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "XFS development tree".

The branch, v3.0-xfs_dmapi has been created
        at  f7fe0c1f1a23871cff6ab6959bb17b32afb22596 (commit)

- Log -----------------------------------------------------------------
commit f7fe0c1f1a23871cff6ab6959bb17b32afb22596
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Thu Apr 12 09:54:06 2012 -0500

    xfs_dmapi: reinstate read and write events
    
    This patch adds DMAPI calls to xfs_file_splice_read and 
xfs_file_splice_write.
    
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 87e98fb84c235a45fc5dea6fced8c6bd9e534234
Author: Mark Tinguely <tinguely@xxxxxxx>
Date:   Thu Apr 12 09:54:06 2012 -0500

    xfs_dmapi: reinstate read and write events
    
    The xfs_write and xfs_read have be removed. This patch places the
    DMAPI calls into xfs_file_aio_read() and xfs_file_aio_write().
    
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit bf1925dcb2308e268072c10977e8a70376bd7323
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:54:05 2012 -0500

    xfs/dmapi: Remove cached vfsmount
    
     Previous version of xfs/dmapi were able to cache a vfsmount pointer on
     mount in order to perform lookups. In recent Linux versions, the vfsmount
     pointer is not passed to the mount callbacks anymore.
    
     For SLE11 SP2 GA, we added
     patches.suse/xfs-dmapi-obtain-vfsmount-for-use-in-xfs_dm_rdwr to cache
     a vfsmount pointer opportunistically when it was needed. This is buggy.
    
     The spinlock protecting the test-and-set was never initialized. Also,
     if the XFS file system is mounted on multiple mount points and the mount
     point referenced by the cached vfsmount goes away, we'll have a stale
     pointer and will Oops.
    
     The xfs_mount_t->m_vfsmount{,_lock} members are no longer used but
     removing them would alter the kABI.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 36e03cc7b81194f9cc4e35df8209792165c230ec
Author: Tony Ernst <tee@xxxxxxx>
Date:   Thu Apr 12 09:54:05 2012 -0500

    xfs/dmapi: Fix crash due to NULL pointer dereference
    
     The formatter() call in xfs_bulkstat is passing NULL instead of
     private_data, causing a crash.
    
    Acked-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 096cfc08f69f4c115eb4489730c2cac032bd359e
Author: Tony Ernst <tee@xxxxxxx>
Date:   Thu Apr 12 09:54:05 2012 -0500

    DMAPI: XFS_FREE_EOF_HASLOCK flag is not always checked
    
    The flag XFS_FREE_EOF_HASLOCK is a special flag that tells 
xfs_free_eofblocks()
    that the calling function ( xfs_dm_punch_hole() ) is calling the function 
but
    it already has the XFS_IOLOCK_EXCL and wants to keep it.
    
    Alain has a patch to make sure we never release the lock if the flag is set.
    This fix is in dmapi code, which is not upstream code.
    
    I will attach his patch.
    
    Acked-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit f9c50295726676f330b7db9fd7748bf08e623acd
Author: Alex Elder <aelder@xxxxxxx>
Date:   Thu Apr 12 09:54:04 2012 -0500

    xfs: Do not always ignore preunmount events
    
    In xfs_fs_put_super(), the macro XFS_SEND_PREUNMOUNT(mp) is used to allow a
    DMAPI pre-unmount event to get generated prior to the final flush of 
filesystem
    data.  That macro generates a namespace event, passing as a final argument a
    flag that's either 0 (normally) or DM_FLAGS_UNWANTED (if the event can be
    ignored because it's not in the mount point's DMAPI event mask).
    
    The current code is causing this particular event to be ignored, because it 
is
    erroneously checking for DM_EVENT_UNMOUNT rather than DM_EVENT_PREUNMOUNT in
    the DMAPI event mask.
    
    The fix is straightforward.  We define a new macro to check the event mask
    against the proper value and use it in place of the call to
    XFS_DMAPI_UNMOUNT_FLAGS() currently in place.
    
    Signed-off-by: Alex Elder <aelder@xxxxxxx>
    Acked-by: Jan Kara <jack@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 97dbabf8e3ac8fe82fa39de08df28458cec61746
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:54:04 2012 -0500

    xfs: Add exports for DMAPI
    
     This patch adds exports that are needed to build the XFS DMAPI module.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit d3162da494a5c2d8618238fc9f9575297b4177f5
Author: Bill O'Donnel <billodo@xxxxxxx>
Date:   Thu Apr 12 09:54:03 2012 -0500

    xfs/dmapi: fix crash on mount
    
     This patch resolves a crash on mount problem with dmapi, relating to an
     errant search and replace.
    
    Acked-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 28b171cf2b64167826474efbb82ad9d471a05f75
Author: Greg Banks <gnb@xxxxxxxxxxxxxxxxx>
Date:   Thu Apr 12 09:54:03 2012 -0500

    Make NFSD DMAPI aware
    
    G'day,
    
    The NFSv3 protocol specifies an error, NFS3ERR_JUKEBOX, which a server
    should return when an I/O operation will take a very long time.
    This causes a different pattern of retries in clients, and avoids
    a number of serious problems associated with I/Os which take longer
    than an RPC timeout.  The Linux knfsd server has code to generate the
    jukebox error and many NFS clients are known to have working code to
    handle it.
    
    One scenario in which a server should emit the JUKEBOX error is when
    a file data which the client is attempting to access is managed by
    an HSM (Hierarchical Storage Manager) and is not present on the disk
    and needs to be brought in from tape.  Due to the nature of tapes this
    operation can take minutes rather than the milliseconds normally seen
    for local file data.
    
    Currently the Linux knfsd handles this situation poorly.  A READ NFS
    call will cause the nfsd thread handling it to block until the file
    is available, without sending a reply to the NFS client.  After a
    few seconds the client retries, and this second READ call causes
    another nfsd to block behind the first one.  A few seconds later and
    the client's retries have blocked *all* the nfsd threads, and all NFS
    service from the server stops until the original file arrives on disk.
    
    WRITEs and SETATTRs which truncate the file are marginally better, in
    that the knfsd dupcache will catch the retries and drop them without
    blocking an nfsd (the dupcache *will* catch the retries because the
    cache entry remains in RC_INPROG state and is not reused until the
    first call finishes).  However the first call still blocks, so given
    WRITEs to enough offline files the server can still be locked up.
    
    There are also client-side implications, depending on the client
    implementation.  For example, on a Linux client an RPC retry loop uses
    an RPC request slot, so reads from enough separate offline files can
    lock up a mountpoint.
    
    This patch seeks to remedy the interaction between knfsd and HSMs by
    providing mechanisms to allow knfsd to tell an underlying filesystem
    (which supports HSMs) not to block for reads, writes and truncates
    of offline files.  It's a port of a Linux 2.4 patch used in SGI's
    ProPack distro for the last 12 months.  The patch:
    
    *  provides a new ATTR_NO_BLOCK flag which the kernel can
       use to tell a filesystem's inode_ops->setattr() operation not
       to block when truncating an offline file.  XFS already obeys
       this flag (inside a #ifdef)
    
    *  changes knfsd to provide ATTR_NO_BLOCK when it does the VFS
       calls to implement the SETATTR NFS call.
    
    *  changes knfsd to supply the O_NONBLOCK flag in the temporary
       struct file it uses for VFS reads and writes, in order to ask
       the filesystem not to block when reading or writing an offline
       file.  XFS already obeys this new semantic for O_NONBLOCK
       (and in SLES9 so does JFS).
    
    *  adds code to translate the -EAGAIN the filesystem returns when
       it would have blocked, to the -ETIMEDOUT that knfsd expects.
    
    
    Signed-off-by: Greg Banks <gnb@xxxxxxxxxxxxxxxxx>
    (SLES9 patch Acked-by: okir@xxxxxxx)
    Signed-off-by: NeilBrown <neilb@xxxxxxx>
    Acked-by: Jan Kara <jack@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>
    
     fs/nfsd/vfs.c               |   32 ++++++++++++++++++++++++++++++--
     fs/xfs/linux-2.6/xfs_iops.c |    7 ++++++-
     include/linux/fs.h          |    1 +
     3 files changed, 37 insertions(+), 3 deletions(-)

commit bd2841b4dd2d027ea8769b10f617e63876f77ae0
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:54 2012 -0500

    xfs/dmapi: Obtain vfsmount for use in xfs_dm_rdwr
    
     XFS's DMAPI implementation needs a vfsmount to do internal file opens.
     Older kernels passed the vfsmount in with the get_sb call but that has
     since been removed. This patch adds a lookup before the actual use of
     the vfsmount and caches it.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 869ef3fb8809f30ab5407f47fa3203c14ea6b0d1
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:54 2012 -0500

    xfs/dmapi: Initialize the function pointer vector statically
    
     xfs_dm_get_dmapiops() re-initializes the static function pointer vector
     every time it is called, and it's called a lot. There's a static
     variable that probably was intended to make this happen once but it's
     never actually set to something nonzero, so it gets set up every time.
    
     The static array is overwritten every time the function is called, without
     locking. Since it is always overwritten with the same contents, we don't
     run into problems. It's still wrong.
    
     This patch initializes the array with named members and just passes back
     the pointer without changing anything.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit e421eff79cd920c6c583e83210561c16a7f41329
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:54 2012 -0500

    xfs/dmapi: Add missing unlocks after transaction commit
    
     This patch adds missing xfs_iunlocks after the transaction has been
     committed in xfs_dm_f_set_eventlist and xfs_dm_set_region.
    
     Without the patch, xfstests will cause a double-lock deadlock.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 8780c25f491060813e304a19dd05d569bdf8147e
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:53 2012 -0500

    XFS/DMAPI: Update to 3.0 API
    
     - address_space->i_mmap_lock has been replaced with a mutex.
     - xfs_trans_ijoin no longer takes a lock argument
     - An additional reference does not need to be taken before starting
       a transaction
     - KM_LARGE was removed (was a no-op before)
     - Re-introduce xfs_fsync
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit ee43970ef4996d83fac84732dae1f2916ef93117
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:53 2012 -0500

    xfs: remove block number from inode lookup code (dmapi)
    
    This patch implementst the DMAPI portion of
    patches.fixes/xfs-remove-block-number-from-inode-lookup-code
    
    Since the DMAPI code wasn't actually using the block number, this is
    just straight code removal.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit a07a89f578b24d46df8d1a8be9406d473617f3d5
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:52 2012 -0500

    xfs: rename XFS_IGET_BULKSTAT to XFS_IGET_UNTRUSTED (dmapi)
    
     This patch implements the DMAPI portion of
     patches.fixes/xfs-rename-xfs_iget_bulkstat-to-xfs_iget_untrusted
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit ce42f81cb2c6e927d8a0a81272c5eac8f1698dbb
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:52 2012 -0500

    xfs: always use iget in bulkstat (dmapi)
    
     This patch implements the DMAPI portion of
     patches.fixes/xfs-always-use-iget-in-bulkstat
    
     That patch removed the private_data argument for the formatter function
     pointer in xfs_bulkstat. It has no in-kernel users and has been removed but
     the dmapi code does use it.
    
     Also, since inline lookup support was removed, I've dropped the code
     to implement it in DMAPI.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 6c78942ac19c35b10c68d46bee28042ca3df735a
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:51 2012 -0500

    xfs/dmapi: Re-add flags for xfs_free_eofblocks
    
     2.6.33 removed the NOLOCK flag from xfs_free_eofblocks. xfs_dm_punch_hole
     needs it because it already holds the iolock for the vnode it's operating
     on. This patch restores the flag to avoid a pretty obvious deadlock in
     dmapi.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 4a547830daa9ad46e2b8d591299911f09e8a5732
Author: Donald Douwsma <donaldd@xxxxxxx>
Date:   Thu Oct 9 17:11:53 2008 +1100

    DMAPI support for xfs
    
    Acked-by: Jan Kara <jack@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 5e17ec39628196da3a3ffda354745ec6eb287d37
Author: Jeff Mahoney <jeffm@xxxxxxxx>
Date:   Thu Apr 12 09:53:50 2012 -0500

    XFS: Restore DMAPI infrastructure
    
     This patch essentially reverts commit 288699fe (xfs: drop dmapi hooks) and
     re-integrates the DMAPI hooks into the XFS code.
    
    Signed-off-by: Jeff Mahoney <jeffm@xxxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 9485f5072de835481f9a4e5baca516e807da5b49
Author: Donald Douwsma <donaldd@xxxxxxx>
Date:   Thu Oct 9 17:11:14 2008 +1100

    VFS changes to support DMAPI
    
    VFS changes to support DMAPI including open_exec(), mprotect()
    and build infastructure.
    
    Acked-by: Jan Kara <jack@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

commit 08d81875cc788b3447dd4242869afb68010ba733
Author: Donald Douwsma <donaldd@xxxxxxx>
Date:   Thu Oct 9 17:11:31 2008 +1100

    DMAPI Source
    
    Acked-by: Jan Kara <jack@xxxxxxx>
    Signed-off-by: Ben Myers <bpm@xxxxxxx>

-----------------------------------------------------------------------


hooks/post-receive
-- 
XFS development tree

<Prev in Thread] Current Thread [Next in Thread>
  • [XFS updates] XFS development tree branch, v3.0-xfs_dmapi, created. v3.0-21-gf7fe0c1, xfs <=