Message ID | 44410519-fd0d-2527-c5cd-e23032eba299@redhat.com (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
On Mon, Nov 27, 2017 at 06:04:55PM -0600, Eric Sandeen wrote: > It's only used for tracepoints so it's relatively harmless, > but the offset is calculated incorrectly in xfs_scrub_quota_item. > > qi_dqperchunk is the nr. of dquots per "chunk" which we have > conveniently *cough* defined to always be 1 FSB. Therefore > block_offset * qi_dqperchunk == first id in that chunk, > and so offset = id / qi_dqperchunk > > id * dqperchunk is ... meaningless. > > Fixes-coverity-id: 1423965 > Fixes: c2fc338c ("xfs: scrub quota information") > Signed-off-by: Eric Sandeen <sandeen@redhat.com> Looks ok, will test Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> > --- > > compile-tested only > > diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c > index 8e58ba8..2eac160 100644 > --- a/fs/xfs/scrub/quota.c > +++ b/fs/xfs/scrub/quota.c > @@ -107,7 +107,7 @@ > unsigned long long rcount; > xfs_ino_t fs_icount; > > - offset = id * qi->qi_dqperchunk; > + offset = id / qi->qi_dqperchunk; > > /* > * We fed $id and DQNEXT into the xfs_qm_dqget call, which means > -- > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/xfs/scrub/quota.c b/fs/xfs/scrub/quota.c index 8e58ba8..2eac160 100644 --- a/fs/xfs/scrub/quota.c +++ b/fs/xfs/scrub/quota.c @@ -107,7 +107,7 @@ unsigned long long rcount; xfs_ino_t fs_icount; - offset = id * qi->qi_dqperchunk; + offset = id / qi->qi_dqperchunk; /* * We fed $id and DQNEXT into the xfs_qm_dqget call, which means
It's only used for tracepoints so it's relatively harmless, but the offset is calculated incorrectly in xfs_scrub_quota_item. qi_dqperchunk is the nr. of dquots per "chunk" which we have conveniently *cough* defined to always be 1 FSB. Therefore block_offset * qi_dqperchunk == first id in that chunk, and so offset = id / qi_dqperchunk id * dqperchunk is ... meaningless. Fixes-coverity-id: 1423965 Fixes: c2fc338c ("xfs: scrub quota information") Signed-off-by: Eric Sandeen <sandeen@redhat.com> --- compile-tested only -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html