]> Pileus Git - ~andy/linux/blobdiff - fs/xfs/xfs_qm.c
Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm
[~andy/linux] / fs / xfs / xfs_qm.c
index dd88f0e27bd8ce1119d2606c256117d4d2488b9c..348e4d2ed6e6e9621b82c535212e32093b51da0c 100644 (file)
@@ -1222,16 +1222,18 @@ xfs_qm_dqiterate(
        lblkno = 0;
        maxlblkcnt = XFS_B_TO_FSB(mp, mp->m_super->s_maxbytes);
        do {
+               uint            lock_mode;
+
                nmaps = XFS_DQITER_MAP_SIZE;
                /*
                 * We aren't changing the inode itself. Just changing
                 * some of its data. No new blocks are added here, and
                 * the inode is never added to the transaction.
                 */
-               xfs_ilock(qip, XFS_ILOCK_SHARED);
+               lock_mode = xfs_ilock_data_map_shared(qip);
                error = xfs_bmapi_read(qip, lblkno, maxlblkcnt - lblkno,
                                       map, &nmaps, 0);
-               xfs_iunlock(qip, XFS_ILOCK_SHARED);
+               xfs_iunlock(qip, lock_mode);
                if (error)
                        break;