]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - fs/ubifs/super.c
Merge branch 'master' of git://git.denx.de/u-boot-tegra
[karo-tx-uboot.git] / fs / ubifs / super.c
index 9c87db40d3838c4dd271460884b4c293c3f4e14e..dd9b668ee763f9b1d17cb8520b75af99f6bc3610 100644 (file)
@@ -531,7 +531,7 @@ static void ubifs_evict_inode(struct inode *inode)
        dbg_gen("inode %lu, mode %#x", inode->i_ino, (int)inode->i_mode);
        ubifs_assert(!atomic_read(&inode->i_count));
 
-       truncate_inode_pages(&inode->i_data, 0);
+       truncate_inode_pages_final(&inode->i_data);
 
        if (inode->i_nlink)
                goto done;
@@ -1786,7 +1786,7 @@ static int ubifs_remount_rw(struct ubifs_info *c)
        if (c->space_fixup) {
                err = ubifs_fixup_free_space(c);
                if (err)
-                       return err;
+                       goto out;
        }
 
        err = check_free_space(c);
@@ -2063,6 +2063,7 @@ static int ubifs_remount_fs(struct super_block *sb, int *flags, char *data)
        int err;
        struct ubifs_info *c = sb->s_fs_info;
 
+       sync_filesystem(sb);
        dbg_gen("old flags %#lx, new flags %#x", sb->s_flags, *flags);
 
        err = ubifs_parse_options(c, data, 1);
@@ -2241,8 +2242,14 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent)
        int err;
 
        c->vfs_sb = sb;
+#ifndef __UBOOT__
        /* Re-open the UBI device in read-write mode */
        c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READWRITE);
+#else
+       /* U-Boot read only mode */
+       c->ubi = ubi_open_volume(c->vi.ubi_num, c->vi.vol_id, UBI_READONLY);
+#endif
+
        if (IS_ERR(c->ubi)) {
                err = PTR_ERR(c->ubi);
                goto out;