]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/gfs2/sys.c
Merge tag 'for-v3.5' of git://git.infradead.org/battery-2.6
[karo-tx-linux.git] / fs / gfs2 / sys.c
index d33172c291bad63064dba6eebdddc8daba16b3f6..9c2592b1d5ff74ab0e5c2f800b0d0e4508119021 100644 (file)
@@ -368,10 +368,7 @@ int gfs2_recover_set(struct gfs2_sbd *sdp, unsigned jid)
        struct gfs2_jdesc *jd;
        int rv;
 
-       rv = -ESHUTDOWN;
        spin_lock(&sdp->sd_jindex_spin);
-       if (test_bit(SDF_NORECOVERY, &sdp->sd_flags))
-               goto out;
        rv = -EBUSY;
        if (sdp->sd_jdesc->jd_jid == jid)
                goto out;
@@ -396,8 +393,13 @@ static ssize_t recover_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
        if (rv != 1)
                return -EINVAL;
 
-       rv = gfs2_recover_set(sdp, jid);
+       if (test_bit(SDF_NORECOVERY, &sdp->sd_flags)) {
+               rv = -ESHUTDOWN;
+               goto out;
+       }
 
+       rv = gfs2_recover_set(sdp, jid);
+out:
        return rv ? rv : len;
 }