mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
gfs2: Set qd_sync_gen in do_sync
Func do_sync was called in two places: gfs2_quota_unlock and gfs2_quota_sync. In gfs2_quota_sync it updated qd_sync_gen to the latest superblock sync gen, if do_sync was successful. In gfs2_quota_unlock it didn't update the value. That can only lead to extra work, for example, if the value is synced by gfs2_quota_unlock but still has the old value. This patch moves the setting of qd_sync_gen inside do_sync so we are guaranteed consistency. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
dec64ae37b
commit
fce17cb0ee
@ -991,6 +991,10 @@ out_dq:
|
||||
GFS2_LOG_HEAD_FLUSH_NORMAL | GFS2_LFC_DO_SYNC);
|
||||
out:
|
||||
gfs2_qa_put(ip);
|
||||
if (!error) {
|
||||
for (x = 0; x < num_qd; x++)
|
||||
qda[x]->qd_sync_gen = sdp->sd_quota_sync_gen;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -1334,10 +1338,6 @@ int gfs2_quota_sync(struct super_block *sb, int type)
|
||||
if (num_qd) {
|
||||
if (!error)
|
||||
error = do_sync(num_qd, qda);
|
||||
if (!error)
|
||||
for (x = 0; x < num_qd; x++)
|
||||
qda[x]->qd_sync_gen =
|
||||
sdp->sd_quota_sync_gen;
|
||||
|
||||
for (x = 0; x < num_qd; x++)
|
||||
qd_unlock(qda[x]);
|
||||
|
Loading…
Reference in New Issue
Block a user