[XFS updates] XFS development tree branch, v3.0-xfs_dmapi, created. v3.0-21-gf7fe0c1
xfs at oss.sgi.com
xfs at oss.sgi.com
Thu Apr 12 11:40:26 CDT 2012
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 at sgi.com>
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 at sgi.com>
commit 87e98fb84c235a45fc5dea6fced8c6bd9e534234
Author: Mark Tinguely <tinguely at sgi.com>
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 at sgi.com>
commit bf1925dcb2308e268072c10977e8a70376bd7323
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 36e03cc7b81194f9cc4e35df8209792165c230ec
Author: Tony Ernst <tee at sgi.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 096cfc08f69f4c115eb4489730c2cac032bd359e
Author: Tony Ernst <tee at sgi.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit f9c50295726676f330b7db9fd7748bf08e623acd
Author: Alex Elder <aelder at sgi.com>
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 at sgi.com>
Acked-by: Jan Kara <jack at suse.cz>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 97dbabf8e3ac8fe82fa39de08df28458cec61746
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit d3162da494a5c2d8618238fc9f9575297b4177f5
Author: Bill O'Donnel <billodo at sgi.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 28b171cf2b64167826474efbb82ad9d471a05f75
Author: Greg Banks <gnb at melbourne.sgi.com>
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 at melbourne.sgi.com>
(SLES9 patch Acked-by: okir at suse.de)
Signed-off-by: NeilBrown <neilb at suse.de>
Acked-by: Jan Kara <jack at suse.cz>
Signed-off-by: Ben Myers <bpm at sgi.com>
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 at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 869ef3fb8809f30ab5407f47fa3203c14ea6b0d1
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit e421eff79cd920c6c583e83210561c16a7f41329
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 8780c25f491060813e304a19dd05d569bdf8147e
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit ee43970ef4996d83fac84732dae1f2916ef93117
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit a07a89f578b24d46df8d1a8be9406d473617f3d5
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit ce42f81cb2c6e927d8a0a81272c5eac8f1698dbb
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 6c78942ac19c35b10c68d46bee28042ca3df735a
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 4a547830daa9ad46e2b8d591299911f09e8a5732
Author: Donald Douwsma <donaldd at sgi.com>
Date: Thu Oct 9 17:11:53 2008 +1100
DMAPI support for xfs
Acked-by: Jan Kara <jack at suse.cz>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 5e17ec39628196da3a3ffda354745ec6eb287d37
Author: Jeff Mahoney <jeffm at suse.com>
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 at suse.com>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 9485f5072de835481f9a4e5baca516e807da5b49
Author: Donald Douwsma <donaldd at sgi.com>
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 at suse.cz>
Signed-off-by: Ben Myers <bpm at sgi.com>
commit 08d81875cc788b3447dd4242869afb68010ba733
Author: Donald Douwsma <donaldd at sgi.com>
Date: Thu Oct 9 17:11:31 2008 +1100
DMAPI Source
Acked-by: Jan Kara <jack at suse.cz>
Signed-off-by: Ben Myers <bpm at sgi.com>
-----------------------------------------------------------------------
hooks/post-receive
--
XFS development tree
More information about the xfs
mailing list