--- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -451,7 +451,7 @@ static int qd_check_sync(struct gfs2_sbd *sdp, struct gfs2_quota_data *qd, static int qd_fish(struct gfs2_sbd *sdp, struct gfs2_quota_data **qdp) { struct gfs2_quota_data *qd = NULL, *iter; - int error; + int error, fd = 0; *qdp = NULL; @@ -463,9 +463,12 @@ static int qd_fish(struct gfs2_sbd *sdp, struct gfs2_quota_data **qdp) list_for_each_entry(iter, &sdp->sd_quota_list, qd_list) { if (qd_check_sync(sdp, iter, &sdp->sd_quota_sync_gen)) { qd = iter; + fd = 1; break; } } + if (!fd) + qd = NULL; spin_unlock(&qd_lock);