diff options
author | Mark Brown <broonie@linaro.org> | 2014-04-29 13:01:28 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-04-29 13:01:28 -0400 |
commit | 3e93457b45a1a8c69227ce596ee2005fa06f20dd (patch) | |
tree | 248c27e432533b1af80a9b2240eaa8e48e3b87cc /fs/xfs/xfs_buf.c | |
parent | 290414499cf94284a97cc3c33214d13ccfcd896a (diff) | |
parent | c42ba72ec3a7a1b6aa30122931f1f4b91b601c31 (diff) |
Merge tag 'ib-mfd-regulator-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into regulator-tps65090
Immutable branch between MFD and Regulator due for v3.16 merge-window.
Diffstat (limited to 'fs/xfs/xfs_buf.c')
-rw-r--r-- | fs/xfs/xfs_buf.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index 107f2fdfe41f..cb10a0aaab3a 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c | |||
@@ -1372,21 +1372,29 @@ xfs_buf_iorequest( | |||
1372 | xfs_buf_wait_unpin(bp); | 1372 | xfs_buf_wait_unpin(bp); |
1373 | xfs_buf_hold(bp); | 1373 | xfs_buf_hold(bp); |
1374 | 1374 | ||
1375 | /* Set the count to 1 initially, this will stop an I/O | 1375 | /* |
1376 | * Set the count to 1 initially, this will stop an I/O | ||
1376 | * completion callout which happens before we have started | 1377 | * completion callout which happens before we have started |
1377 | * all the I/O from calling xfs_buf_ioend too early. | 1378 | * all the I/O from calling xfs_buf_ioend too early. |
1378 | */ | 1379 | */ |
1379 | atomic_set(&bp->b_io_remaining, 1); | 1380 | atomic_set(&bp->b_io_remaining, 1); |
1380 | _xfs_buf_ioapply(bp); | 1381 | _xfs_buf_ioapply(bp); |
1381 | _xfs_buf_ioend(bp, 1); | 1382 | /* |
1383 | * If _xfs_buf_ioapply failed, we'll get back here with | ||
1384 | * only the reference we took above. _xfs_buf_ioend will | ||
1385 | * drop it to zero, so we'd better not queue it for later, | ||
1386 | * or we'll free it before it's done. | ||
1387 | */ | ||
1388 | _xfs_buf_ioend(bp, bp->b_error ? 0 : 1); | ||
1382 | 1389 | ||
1383 | xfs_buf_rele(bp); | 1390 | xfs_buf_rele(bp); |
1384 | } | 1391 | } |
1385 | 1392 | ||
1386 | /* | 1393 | /* |
1387 | * Waits for I/O to complete on the buffer supplied. It returns immediately if | 1394 | * Waits for I/O to complete on the buffer supplied. It returns immediately if |
1388 | * no I/O is pending or there is already a pending error on the buffer. It | 1395 | * no I/O is pending or there is already a pending error on the buffer, in which |
1389 | * returns the I/O error code, if any, or 0 if there was no error. | 1396 | * case nothing will ever complete. It returns the I/O error code, if any, or |
1397 | * 0 if there was no error. | ||
1390 | */ | 1398 | */ |
1391 | int | 1399 | int |
1392 | xfs_buf_iowait( | 1400 | xfs_buf_iowait( |