diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 9332f5ac6..91d3bb314 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c @@ -2561,6 +2561,9 @@ int nilfs_clean_segments(struct super_block *sb, struct nilfs_argv *argv, break; nilfs_warn(sb, "error %d cleaning segments", err); + if (unlikely(err == -EROFS)) + break; + set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(sci->sc_interval); }