summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_iget.c
diff options
context:
space:
mode:
authorMark Tinguely <tinguely@sgi.com>2012-07-24 10:59:19 -0500
committerBen Myers <bpm@sgi.com>2012-07-29 16:34:19 -0500
commit9a57fa8ee7c29e11c2a29ce058573ba99157eda7 (patch)
tree3fc564a3ad53b16a6604aa89ae3d4d26e07e2d38 /fs/xfs/xfs_iget.c
parent8375f922aaa6e7a880022529202fb486315568c3 (diff)
downloadlinux-9a57fa8ee7c29e11c2a29ce058573ba99157eda7.tar.gz
linux-9a57fa8ee7c29e11c2a29ce058573ba99157eda7.tar.bz2
linux-9a57fa8ee7c29e11c2a29ce058573ba99157eda7.zip
xfs: wait for the write the superblock on unmount
v2: Add the xfs_buf_lock to xfs_quiesce_attr(). Add explaination why xfs_buf_lock() is used to wait for write. xfs_wait_buftarg() does not wait for the completion of the write of the uncached superblock. This write can race with the shutdown of the log and causes a panic if the write does not win the race. During the log write, xfsaild_push() will lock the buffer and set the XBF_ASYNC flag. Because the XBF_FLAG is set, complete() is not performed on the buffer's iowait entry, we cannot call xfs_buf_iowait() to wait for the write to complete. The buffer's lock is held until the write is complete, so we can block on a xfs_buf_lock() request to be notified that the write is complete. Signed-off-by: Mark Tinguely <tinguely@sgi.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_iget.c')
0 files changed, 0 insertions, 0 deletions