diff options
-rw-r--r-- | fs/gfs2/lops.c | 5 | ||||
-rw-r--r-- | fs/gfs2/quota.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index c090d5ad3f22..0af2e5ff0d97 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -203,8 +203,9 @@ static void gfs2_end_log_write(struct bio *bio) struct bvec_iter_all iter_all; if (bio->bi_status) { - fs_err(sdp, "Error %d writing to journal, jid=%u\n", - bio->bi_status, sdp->sd_jdesc->jd_jid); + if (!cmpxchg(&sdp->sd_log_error, 0, (int)bio->bi_status)) + fs_err(sdp, "Error %d writing to journal, jid=%u\n", + bio->bi_status, sdp->sd_jdesc->jd_jid); wake_up(&sdp->sd_logd_waitq); } diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index ca2194cfa38e..dbe87b2b55af 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c @@ -1476,8 +1476,8 @@ static void quotad_error(struct gfs2_sbd *sdp, const char *msg, int error) if (error == 0 || error == -EROFS) return; if (!gfs2_withdrawn(sdp)) { - fs_err(sdp, "gfs2_quotad: %s error %d\n", msg, error); - cmpxchg(&sdp->sd_log_error, 0, error); + if (!cmpxchg(&sdp->sd_log_error, 0, error)) + fs_err(sdp, "gfs2_quotad: %s error %d\n", msg, error); wake_up(&sdp->sd_logd_waitq); } } |