[PATCH] xfs: check for null dquot in xfs_quota_calc_throttle()

Eric Sandeen sandeen at redhat.com
Wed Oct 1 11:16:37 CDT 2014


Coverity spotted this.

Granted, we *just* checked xfs_inod_dquot() in the caller (by calling
xfs_quota_need_throttle), but to be honest I don't know if this can
race, and this is the only place we don't check the return value -
and the check seems cheap and future-proof.

Signed-off-by: Eric Sandeen <sandeen at redhat.com>
---

Sorry for the handwavy commit log, if it's obvious that it can
race, feel free to fix the description. ;)

diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index e9c47b6..afcf3c9 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -404,8 +404,8 @@ xfs_quota_calc_throttle(
 	int shift = 0;
 	struct xfs_dquot *dq = xfs_inode_dquot(ip, type);
 
-	/* over hi wmark, squash the prealloc completely */
-	if (dq->q_res_bcount >= dq->q_prealloc_hi_wmark) {
+	/* no dq, or over hi wmark, squash the prealloc completely */
+	if (!dq || dq->q_res_bcount >= dq->q_prealloc_hi_wmark) {
 		*qblocks = 0;
 		*qfreesp = 0;
 		return;




More information about the xfs mailing list