diff options
Diffstat (limited to 'fs/ext3/super.c')
| -rw-r--r-- | fs/ext3/super.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/fs/ext3/super.c b/fs/ext3/super.c index 85c8cc8f2473..3c6a9e0eadc1 100644 --- a/fs/ext3/super.c +++ b/fs/ext3/super.c @@ -1464,6 +1464,13 @@ static void ext3_orphan_cleanup (struct super_block * sb,  		return;  	} +	/* Check if feature set allows readwrite operations */ +	if (EXT3_HAS_RO_COMPAT_FEATURE(sb, ~EXT3_FEATURE_RO_COMPAT_SUPP)) { +		ext3_msg(sb, KERN_INFO, "Skipping orphan cleanup due to " +			 "unknown ROCOMPAT features"); +		return; +	} +  	if (EXT3_SB(sb)->s_mount_state & EXT3_ERROR_FS) {  		if (es->s_last_orphan)  			jbd_debug(1, "Errors on filesystem, " @@ -1936,6 +1943,7 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)  	sb->s_qcop = &ext3_qctl_operations;  	sb->dq_op = &ext3_quota_operations;  #endif +	memcpy(sb->s_uuid, es->s_uuid, sizeof(es->s_uuid));  	INIT_LIST_HEAD(&sbi->s_orphan); /* unlinked but open files */  	mutex_init(&sbi->s_orphan_lock);  	mutex_init(&sbi->s_resize_lock); @@ -2917,7 +2925,7 @@ static int ext3_quota_on(struct super_block *sb, int type, int format_id,  /* Read data from quotafile - avoid pagecache and such because we cannot afford   * acquiring the locks... As quota files are never truncated and quota code - * itself serializes the operations (and noone else should touch the files) + * itself serializes the operations (and no one else should touch the files)   * we don't have to be afraid of races */  static ssize_t ext3_quota_read(struct super_block *sb, int type, char *data,  			       size_t len, loff_t off)  | 
