gfs2: Minor gfs2_{freeze,thaw}_super cleanup
This minor cleanup to gfs2_freeze_super() and gfs2_thaw_super() prepares for the following refcounting fix. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
parent
edd13270fa
commit
5a7a964689
@ -759,9 +759,10 @@ static int gfs2_freeze_super(struct super_block *sb, enum freeze_holder who)
|
||||
|
||||
if (!mutex_trylock(&sdp->sd_freeze_mutex))
|
||||
return -EBUSY;
|
||||
error = -EBUSY;
|
||||
if (test_bit(SDF_FROZEN, &sdp->sd_flags))
|
||||
goto out;
|
||||
if (test_bit(SDF_FROZEN, &sdp->sd_flags)) {
|
||||
mutex_unlock(&sdp->sd_freeze_mutex);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
error = gfs2_freeze_locally(sdp);
|
||||
@ -772,8 +773,11 @@ static int gfs2_freeze_super(struct super_block *sb, enum freeze_holder who)
|
||||
}
|
||||
|
||||
error = gfs2_lock_fs_check_clean(sdp);
|
||||
if (!error)
|
||||
break; /* success */
|
||||
if (!error) {
|
||||
set_bit(SDF_FREEZE_INITIATOR, &sdp->sd_flags);
|
||||
set_bit(SDF_FROZEN, &sdp->sd_flags);
|
||||
break;
|
||||
}
|
||||
|
||||
error = gfs2_do_thaw(sdp);
|
||||
if (error)
|
||||
@ -793,10 +797,6 @@ static int gfs2_freeze_super(struct super_block *sb, enum freeze_holder who)
|
||||
}
|
||||
|
||||
out:
|
||||
if (!error) {
|
||||
set_bit(SDF_FREEZE_INITIATOR, &sdp->sd_flags);
|
||||
set_bit(SDF_FROZEN, &sdp->sd_flags);
|
||||
}
|
||||
mutex_unlock(&sdp->sd_freeze_mutex);
|
||||
return error;
|
||||
}
|
||||
@ -814,9 +814,10 @@ static int gfs2_thaw_super(struct super_block *sb, enum freeze_holder who)
|
||||
|
||||
if (!mutex_trylock(&sdp->sd_freeze_mutex))
|
||||
return -EBUSY;
|
||||
error = -EINVAL;
|
||||
if (!test_bit(SDF_FREEZE_INITIATOR, &sdp->sd_flags))
|
||||
goto out;
|
||||
if (!test_bit(SDF_FREEZE_INITIATOR, &sdp->sd_flags)) {
|
||||
mutex_unlock(&sdp->sd_freeze_mutex);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
gfs2_freeze_unlock(&sdp->sd_freeze_gh);
|
||||
|
||||
@ -826,7 +827,6 @@ static int gfs2_thaw_super(struct super_block *sb, enum freeze_holder who)
|
||||
clear_bit(SDF_FREEZE_INITIATOR, &sdp->sd_flags);
|
||||
clear_bit(SDF_FROZEN, &sdp->sd_flags);
|
||||
}
|
||||
out:
|
||||
mutex_unlock(&sdp->sd_freeze_mutex);
|
||||
return error;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user