diff --git a/fs/ubifs/master.c b/fs/ubifs/master.c
index 71d5493bf565a3252f2a266eee74594968735188..a88f33801b989aa7316e6ab99e7629cddd9dfb67 100644
--- a/fs/ubifs/master.c
+++ b/fs/ubifs/master.c
@@ -354,7 +354,7 @@ int ubifs_write_master(struct ubifs_info *c)
 	int err, lnum, offs, len;
 
 	if (c->ro_media)
-		return -EINVAL;
+		return -EROFS;
 
 	lnum = UBIFS_MST_LNUM;
 	offs = c->mst_offs + c->mst_node_alsz;
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index daa679d3a03efdf1d8d3be3ec0756e95f1a53d4e..ab85eb8cce796ac680c348b27608c5f12d7530c5 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -1085,12 +1085,7 @@ static int check_free_space(struct ubifs_info *c)
 		ubifs_err("insufficient free space to mount in read/write mode");
 		dbg_dump_budg(c);
 		dbg_dump_lprops(c);
-		/*
-		 * We return %-EINVAL instead of %-ENOSPC because it seems to
-		 * be the closest error code mentioned in the mount function
-		 * documentation.
-		 */
-		return -EINVAL;
+		return -ENOSPC;
 	}
 	return 0;
 }
@@ -1790,7 +1785,7 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)
 	if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) {
 		if (c->ro_media) {
 			ubifs_msg("cannot re-mount due to prior errors");
-			return -EINVAL;
+			return -EROFS;
 		}
 		err = ubifs_remount_rw(c);
 		if (err)
@@ -1798,7 +1793,7 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)
 	} else if (!(sb->s_flags & MS_RDONLY) && (*flags & MS_RDONLY)) {
 		if (c->ro_media) {
 			ubifs_msg("cannot re-mount due to prior errors");
-			return -EINVAL;
+			return -EROFS;
 		}
 		ubifs_remount_ro(c);
 	}