]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/xfs/xfs_aops.c
Merge tag 'sunxi-fixes-for-4.3' of https://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / fs / xfs / xfs_aops.c
index c77499bcbd7a22807e6840ebd314e2a3efbd71e3..50ab2879b9da0ec1211abacbf6598b0a90eddd8a 100644 (file)
@@ -119,8 +119,7 @@ xfs_setfilesize_trans_alloc(
         * We may pass freeze protection with a transaction.  So tell lockdep
         * we released it.
         */
-       rwsem_release(&ioend->io_inode->i_sb->s_writers.lock_map[SB_FREEZE_FS-1],
-                     1, _THIS_IP_);
+       __sb_writers_release(ioend->io_inode->i_sb, SB_FREEZE_FS);
        /*
         * We hand off the transaction to the completion thread now, so
         * clear the flag here.
@@ -171,8 +170,7 @@ xfs_setfilesize_ioend(
         * Similarly for freeze protection.
         */
        current_set_flags_nested(&tp->t_pflags, PF_FSTRANS);
-       rwsem_acquire_read(&VFS_I(ip)->i_sb->s_writers.lock_map[SB_FREEZE_FS-1],
-                          0, 1, _THIS_IP_);
+       __sb_writers_acquired(VFS_I(ip)->i_sb, SB_FREEZE_FS);
 
        return xfs_setfilesize(ip, tp, ioend->io_offset, ioend->io_size);
 }
@@ -355,7 +353,8 @@ xfs_end_bio(
 {
        xfs_ioend_t             *ioend = bio->bi_private;
 
-       ioend->io_error = bio->bi_error;
+       if (!ioend->io_error)
+               ioend->io_error = bio->bi_error;
 
        /* Toss bio and pass work off to an xfsdatad thread */
        bio->bi_private = NULL;