Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs

A fix from Jesper Juhl removes an assignment in an ASSERT when a compare
is intended. Two fixes from Mitsuo Hayasaka address off-by-ones in XFS
quota enforcement.

* 'for-linus' of git://oss.sgi.com/xfs/xfs:
xfs: make inode quota check more general
xfs: change available ranges of softlimit and hardlimit in quota check
XFS: xfs_trans_add_item() - don't assign in ASSERT() when compare is intended

+25 -23
+12 -12
fs/xfs/xfs_dquot.c
··· 139 139 140 140 if (!d->d_btimer) { 141 141 if ((d->d_blk_softlimit && 142 - (be64_to_cpu(d->d_bcount) >= 142 + (be64_to_cpu(d->d_bcount) > 143 143 be64_to_cpu(d->d_blk_softlimit))) || 144 144 (d->d_blk_hardlimit && 145 - (be64_to_cpu(d->d_bcount) >= 145 + (be64_to_cpu(d->d_bcount) > 146 146 be64_to_cpu(d->d_blk_hardlimit)))) { 147 147 d->d_btimer = cpu_to_be32(get_seconds() + 148 148 mp->m_quotainfo->qi_btimelimit); ··· 151 151 } 152 152 } else { 153 153 if ((!d->d_blk_softlimit || 154 - (be64_to_cpu(d->d_bcount) < 154 + (be64_to_cpu(d->d_bcount) <= 155 155 be64_to_cpu(d->d_blk_softlimit))) && 156 156 (!d->d_blk_hardlimit || 157 - (be64_to_cpu(d->d_bcount) < 157 + (be64_to_cpu(d->d_bcount) <= 158 158 be64_to_cpu(d->d_blk_hardlimit)))) { 159 159 d->d_btimer = 0; 160 160 } ··· 162 162 163 163 if (!d->d_itimer) { 164 164 if ((d->d_ino_softlimit && 165 - (be64_to_cpu(d->d_icount) >= 165 + (be64_to_cpu(d->d_icount) > 166 166 be64_to_cpu(d->d_ino_softlimit))) || 167 167 (d->d_ino_hardlimit && 168 - (be64_to_cpu(d->d_icount) >= 168 + (be64_to_cpu(d->d_icount) > 169 169 be64_to_cpu(d->d_ino_hardlimit)))) { 170 170 d->d_itimer = cpu_to_be32(get_seconds() + 171 171 mp->m_quotainfo->qi_itimelimit); ··· 174 174 } 175 175 } else { 176 176 if ((!d->d_ino_softlimit || 177 - (be64_to_cpu(d->d_icount) < 177 + (be64_to_cpu(d->d_icount) <= 178 178 be64_to_cpu(d->d_ino_softlimit))) && 179 179 (!d->d_ino_hardlimit || 180 - (be64_to_cpu(d->d_icount) < 180 + (be64_to_cpu(d->d_icount) <= 181 181 be64_to_cpu(d->d_ino_hardlimit)))) { 182 182 d->d_itimer = 0; 183 183 } ··· 185 185 186 186 if (!d->d_rtbtimer) { 187 187 if ((d->d_rtb_softlimit && 188 - (be64_to_cpu(d->d_rtbcount) >= 188 + (be64_to_cpu(d->d_rtbcount) > 189 189 be64_to_cpu(d->d_rtb_softlimit))) || 190 190 (d->d_rtb_hardlimit && 191 - (be64_to_cpu(d->d_rtbcount) >= 191 + (be64_to_cpu(d->d_rtbcount) > 192 192 be64_to_cpu(d->d_rtb_hardlimit)))) { 193 193 d->d_rtbtimer = cpu_to_be32(get_seconds() + 194 194 mp->m_quotainfo->qi_rtbtimelimit); ··· 197 197 } 198 198 } else { 199 199 if ((!d->d_rtb_softlimit || 200 - (be64_to_cpu(d->d_rtbcount) < 200 + (be64_to_cpu(d->d_rtbcount) <= 201 201 be64_to_cpu(d->d_rtb_softlimit))) && 202 202 (!d->d_rtb_hardlimit || 203 - (be64_to_cpu(d->d_rtbcount) < 203 + (be64_to_cpu(d->d_rtbcount) <= 204 204 be64_to_cpu(d->d_rtb_hardlimit)))) { 205 205 d->d_rtbtimer = 0; 206 206 }
+3 -3
fs/xfs/xfs_log_recover.c
··· 1981 1981 1982 1982 if (!errs && ddq->d_id) { 1983 1983 if (ddq->d_blk_softlimit && 1984 - be64_to_cpu(ddq->d_bcount) >= 1984 + be64_to_cpu(ddq->d_bcount) > 1985 1985 be64_to_cpu(ddq->d_blk_softlimit)) { 1986 1986 if (!ddq->d_btimer) { 1987 1987 if (flags & XFS_QMOPT_DOWARN) ··· 1992 1992 } 1993 1993 } 1994 1994 if (ddq->d_ino_softlimit && 1995 - be64_to_cpu(ddq->d_icount) >= 1995 + be64_to_cpu(ddq->d_icount) > 1996 1996 be64_to_cpu(ddq->d_ino_softlimit)) { 1997 1997 if (!ddq->d_itimer) { 1998 1998 if (flags & XFS_QMOPT_DOWARN) ··· 2003 2003 } 2004 2004 } 2005 2005 if (ddq->d_rtb_softlimit && 2006 - be64_to_cpu(ddq->d_rtbcount) >= 2006 + be64_to_cpu(ddq->d_rtbcount) > 2007 2007 be64_to_cpu(ddq->d_rtb_softlimit)) { 2008 2008 if (!ddq->d_rtbtimer) { 2009 2009 if (flags & XFS_QMOPT_DOWARN)
+2 -2
fs/xfs/xfs_qm_syscalls.c
··· 813 813 (XFS_IS_OQUOTA_ENFORCED(mp) && 814 814 (dst->d_flags & (FS_PROJ_QUOTA | FS_GROUP_QUOTA)))) && 815 815 dst->d_id != 0) { 816 - if (((int) dst->d_bcount >= (int) dst->d_blk_softlimit) && 816 + if (((int) dst->d_bcount > (int) dst->d_blk_softlimit) && 817 817 (dst->d_blk_softlimit > 0)) { 818 818 ASSERT(dst->d_btimer != 0); 819 819 } 820 - if (((int) dst->d_icount >= (int) dst->d_ino_softlimit) && 820 + if (((int) dst->d_icount > (int) dst->d_ino_softlimit) && 821 821 (dst->d_ino_softlimit > 0)) { 822 822 ASSERT(dst->d_itimer != 0); 823 823 }
+2 -2
fs/xfs/xfs_trans.c
··· 1151 1151 { 1152 1152 struct xfs_log_item_desc *lidp; 1153 1153 1154 - ASSERT(lip->li_mountp = tp->t_mountp); 1155 - ASSERT(lip->li_ailp = tp->t_mountp->m_ail); 1154 + ASSERT(lip->li_mountp == tp->t_mountp); 1155 + ASSERT(lip->li_ailp == tp->t_mountp->m_ail); 1156 1156 1157 1157 lidp = kmem_zone_zalloc(xfs_log_item_desc_zone, KM_SLEEP | KM_NOFS); 1158 1158
+6 -4
fs/xfs/xfs_trans_dquot.c
··· 649 649 * nblks. 650 650 */ 651 651 if (hardlimit > 0ULL && 652 - hardlimit <= nblks + *resbcountp) { 652 + hardlimit < nblks + *resbcountp) { 653 653 xfs_quota_warn(mp, dqp, QUOTA_NL_BHARDWARN); 654 654 goto error_return; 655 655 } 656 656 if (softlimit > 0ULL && 657 - softlimit <= nblks + *resbcountp) { 657 + softlimit < nblks + *resbcountp) { 658 658 if ((timer != 0 && get_seconds() > timer) || 659 659 (warns != 0 && warns >= warnlimit)) { 660 660 xfs_quota_warn(mp, dqp, ··· 677 677 if (!softlimit) 678 678 softlimit = q->qi_isoftlimit; 679 679 680 - if (hardlimit > 0ULL && count >= hardlimit) { 680 + if (hardlimit > 0ULL && 681 + hardlimit < ninos + count) { 681 682 xfs_quota_warn(mp, dqp, QUOTA_NL_IHARDWARN); 682 683 goto error_return; 683 684 } 684 - if (softlimit > 0ULL && count >= softlimit) { 685 + if (softlimit > 0ULL && 686 + softlimit < ninos + count) { 685 687 if ((timer != 0 && get_seconds() > timer) || 686 688 (warns != 0 && warns >= warnlimit)) { 687 689 xfs_quota_warn(mp, dqp,