Merge branch 'xfs-misc-fixes-for-4.3-4' into for-next

This commit is contained in:
Dave Chinner 2015-09-01 10:30:11 +10:00
Родитель 70b33a7466 1a7ccad88d
Коммит 5d54b8cdea
4 изменённых файлов: 9 добавлений и 5 удалений

Просмотреть файл

@ -233,6 +233,7 @@ xfs_da3_node_read_verify(
bp->b_ops->verify_read(bp); bp->b_ops->verify_read(bp);
return; return;
default: default:
xfs_buf_ioerror(bp, -EFSCORRUPTED);
break; break;
} }

Просмотреть файл

@ -356,7 +356,8 @@ xfs_end_bio(
{ {
xfs_ioend_t *ioend = bio->bi_private; xfs_ioend_t *ioend = bio->bi_private;
ioend->io_error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? 0 : error; if (!ioend->io_error && !test_bit(BIO_UPTODATE, &bio->bi_flags))
ioend->io_error = error;
/* Toss bio and pass work off to an xfsdatad thread */ /* Toss bio and pass work off to an xfsdatad thread */
bio->bi_private = NULL; bio->bi_private = NULL;

Просмотреть файл

@ -412,6 +412,8 @@ xfs_iget(
if (!ino || XFS_INO_TO_AGNO(mp, ino) >= mp->m_sb.sb_agcount) if (!ino || XFS_INO_TO_AGNO(mp, ino) >= mp->m_sb.sb_agcount)
return -EINVAL; return -EINVAL;
XFS_STATS_INC(xs_ig_attempts);
/* get the perag structure and ensure that it's inode capable */ /* get the perag structure and ensure that it's inode capable */
pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino)); pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino));
agino = XFS_INO_TO_AGINO(mp, ino); agino = XFS_INO_TO_AGINO(mp, ino);

Просмотреть файл

@ -609,7 +609,7 @@ xfs_setattr_nonsize(
tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE);
error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0); error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0);
if (error) if (error)
goto out_dqrele; goto out_trans_cancel;
xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_ilock(ip, XFS_ILOCK_EXCL);
@ -640,7 +640,7 @@ xfs_setattr_nonsize(
NULL, capable(CAP_FOWNER) ? NULL, capable(CAP_FOWNER) ?
XFS_QMOPT_FORCE_RES : 0); XFS_QMOPT_FORCE_RES : 0);
if (error) /* out of quota */ if (error) /* out of quota */
goto out_trans_cancel; goto out_unlock;
} }
} }
@ -729,10 +729,10 @@ xfs_setattr_nonsize(
return 0; return 0;
out_unlock:
xfs_iunlock(ip, XFS_ILOCK_EXCL);
out_trans_cancel: out_trans_cancel:
xfs_trans_cancel(tp); xfs_trans_cancel(tp);
xfs_iunlock(ip, XFS_ILOCK_EXCL);
out_dqrele:
xfs_qm_dqrele(udqp); xfs_qm_dqrele(udqp);
xfs_qm_dqrele(gdqp); xfs_qm_dqrele(gdqp);
return error; return error;