aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/udf/super.c')
-rw-r--r--fs/udf/super.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 44fe2cb0bbb2..1d3b5d2070e5 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -40,7 +40,6 @@
40 40
41#include "udfdecl.h" 41#include "udfdecl.h"
42 42
43#include <linux/config.h>
44#include <linux/blkdev.h> 43#include <linux/blkdev.h>
45#include <linux/slab.h> 44#include <linux/slab.h>
46#include <linux/kernel.h> 45#include <linux/kernel.h>
@@ -116,6 +115,13 @@ static struct inode *udf_alloc_inode(struct super_block *sb)
116 ei = (struct udf_inode_info *)kmem_cache_alloc(udf_inode_cachep, SLAB_KERNEL); 115 ei = (struct udf_inode_info *)kmem_cache_alloc(udf_inode_cachep, SLAB_KERNEL);
117 if (!ei) 116 if (!ei)
118 return NULL; 117 return NULL;
118
119 ei->i_unique = 0;
120 ei->i_lenExtents = 0;
121 ei->i_next_alloc_block = 0;
122 ei->i_next_alloc_goal = 0;
123 ei->i_strat4096 = 0;
124
119 return &ei->vfs_inode; 125 return &ei->vfs_inode;
120} 126}
121 127
@@ -150,8 +156,7 @@ static int init_inodecache(void)
150 156
151static void destroy_inodecache(void) 157static void destroy_inodecache(void)
152{ 158{
153 if (kmem_cache_destroy(udf_inode_cachep)) 159 kmem_cache_destroy(udf_inode_cachep);
154 printk(KERN_INFO "udf_inode_cache: not all structures were freed\n");
155} 160}
156 161
157/* Superblock operations */ 162/* Superblock operations */
@@ -1616,6 +1621,10 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
1616 goto error_out; 1621 goto error_out;
1617 } 1622 }
1618 1623
1624 if (UDF_SB_PARTFLAGS(sb, UDF_SB_PARTITION(sb)) & UDF_PART_FLAG_READ_ONLY)
1625 printk("UDF-fs: Partition marked readonly; forcing readonly mount\n");
1626 sb->s_flags |= MS_RDONLY;
1627
1619 if ( udf_find_fileset(sb, &fileset, &rootdir) ) 1628 if ( udf_find_fileset(sb, &fileset, &rootdir) )
1620 { 1629 {
1621 printk("UDF-fs: No fileset found\n"); 1630 printk("UDF-fs: No fileset found\n");
@@ -1653,7 +1662,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
1653 iput(inode); 1662 iput(inode);
1654 goto error_out; 1663 goto error_out;
1655 } 1664 }
1656 sb->s_maxbytes = MAX_LFS_FILESIZE; 1665 sb->s_maxbytes = 1<<30;
1657 return 0; 1666 return 0;
1658 1667
1659error_out: 1668error_out: