diff options
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_file.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 632313926788..134ff2fe4f4d 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c | |||
@@ -636,7 +636,9 @@ out_lock: | |||
636 | /* | 636 | /* |
637 | * Common pre-write limit and setup checks. | 637 | * Common pre-write limit and setup checks. |
638 | * | 638 | * |
639 | * Returns with iolock held according to @iolock. | 639 | * Called with the iolocked held either shared and exclusive according to |
640 | * @iolock, and returns with it held. Might upgrade the iolock to exclusive | ||
641 | * if called for a direct write beyond i_size. | ||
640 | */ | 642 | */ |
641 | STATIC ssize_t | 643 | STATIC ssize_t |
642 | xfs_file_aio_write_checks( | 644 | xfs_file_aio_write_checks( |
@@ -653,8 +655,7 @@ xfs_file_aio_write_checks( | |||
653 | restart: | 655 | restart: |
654 | error = generic_write_checks(file, pos, count, S_ISBLK(inode->i_mode)); | 656 | error = generic_write_checks(file, pos, count, S_ISBLK(inode->i_mode)); |
655 | if (error) { | 657 | if (error) { |
656 | xfs_rw_iunlock(ip, XFS_ILOCK_EXCL | *iolock); | 658 | xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); |
657 | *iolock = 0; | ||
658 | return error; | 659 | return error; |
659 | } | 660 | } |
660 | 661 | ||