xfs: fix filesystsem freeze race in xfs_trans_alloc
authorChristoph Hellwig <hch@lst.de>
Fri, 8 Jul 2011 12:34:42 +0000 (14:34 +0200)
committerChristoph Hellwig <hch@lst.de>
Fri, 8 Jul 2011 12:34:42 +0000 (14:34 +0200)
commit7a249cf83da1813cfa71cfe1e265b40045eceb47
tree0c665aad7d32614f7eaa5a11c1b534c8fb5037d3
parent33b8f7c2479dfcbc5c27174e44b5f659d9f33c70
xfs: fix filesystsem freeze race in xfs_trans_alloc

As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem
freeze when it sleeps during the memory allocation.  Fix this by moving the
wait_for_freeze call after the memory allocation.  This means moving the
freeze into the low-level _xfs_trans_alloc helper, which thus grows a new
argument.  Also fix up some comments in that area while at it.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
Reviewed-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_fsops.c
fs/xfs/xfs_iomap.c
fs/xfs/xfs_mount.c
fs/xfs/xfs_trans.c
fs/xfs/xfs_trans.h