|
@@ -192,7 +192,10 @@ static int nilfs_store_log_cursor(struct the_nilfs *nilfs,
|
|
|
nilfs_get_segnum_of_block(nilfs, nilfs->ns_last_pseg);
|
|
|
nilfs->ns_cno = nilfs->ns_last_cno + 1;
|
|
|
if (nilfs->ns_segnum >= nilfs->ns_nsegments) {
|
|
|
- printk(KERN_ERR "NILFS invalid last segment number.\n");
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "pointed segment number is out of range: segnum=%llu, nsegments=%lu",
|
|
|
+ (unsigned long long)nilfs->ns_segnum,
|
|
|
+ nilfs->ns_nsegments);
|
|
|
ret = -EINVAL;
|
|
|
}
|
|
|
return ret;
|
|
@@ -216,12 +219,12 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
int err;
|
|
|
|
|
|
if (!valid_fs) {
|
|
|
- printk(KERN_WARNING "NILFS warning: mounting unchecked fs\n");
|
|
|
+ nilfs_msg(sb, KERN_WARNING, "mounting unchecked fs");
|
|
|
if (s_flags & MS_RDONLY) {
|
|
|
- printk(KERN_INFO "NILFS: INFO: recovery "
|
|
|
- "required for readonly filesystem.\n");
|
|
|
- printk(KERN_INFO "NILFS: write access will "
|
|
|
- "be enabled during recovery.\n");
|
|
|
+ nilfs_msg(sb, KERN_INFO,
|
|
|
+ "recovery required for readonly filesystem");
|
|
|
+ nilfs_msg(sb, KERN_INFO,
|
|
|
+ "write access will be enabled during recovery");
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -236,13 +239,12 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
goto scan_error;
|
|
|
|
|
|
if (!nilfs_valid_sb(sbp[1])) {
|
|
|
- printk(KERN_WARNING
|
|
|
- "NILFS warning: unable to fall back to spare"
|
|
|
- "super block\n");
|
|
|
+ nilfs_msg(sb, KERN_WARNING,
|
|
|
+ "unable to fall back to spare super block");
|
|
|
goto scan_error;
|
|
|
}
|
|
|
- printk(KERN_INFO
|
|
|
- "NILFS: try rollback from an earlier position\n");
|
|
|
+ nilfs_msg(sb, KERN_INFO,
|
|
|
+ "trying rollback from an earlier position");
|
|
|
|
|
|
/*
|
|
|
* restore super block with its spare and reconfigure
|
|
@@ -255,10 +257,9 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
/* verify consistency between two super blocks */
|
|
|
blocksize = BLOCK_SIZE << le32_to_cpu(sbp[0]->s_log_block_size);
|
|
|
if (blocksize != nilfs->ns_blocksize) {
|
|
|
- printk(KERN_WARNING
|
|
|
- "NILFS warning: blocksize differs between "
|
|
|
- "two super blocks (%d != %d)\n",
|
|
|
- blocksize, nilfs->ns_blocksize);
|
|
|
+ nilfs_msg(sb, KERN_WARNING,
|
|
|
+ "blocksize differs between two super blocks (%d != %d)",
|
|
|
+ blocksize, nilfs->ns_blocksize);
|
|
|
goto scan_error;
|
|
|
}
|
|
|
|
|
@@ -277,7 +278,8 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
|
|
|
err = nilfs_load_super_root(nilfs, sb, ri.ri_super_root);
|
|
|
if (unlikely(err)) {
|
|
|
- printk(KERN_ERR "NILFS: error loading super root.\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR, "error %d while loading super root",
|
|
|
+ err);
|
|
|
goto failed;
|
|
|
}
|
|
|
|
|
@@ -288,30 +290,29 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
__u64 features;
|
|
|
|
|
|
if (nilfs_test_opt(nilfs, NORECOVERY)) {
|
|
|
- printk(KERN_INFO "NILFS: norecovery option specified. "
|
|
|
- "skipping roll-forward recovery\n");
|
|
|
+ nilfs_msg(sb, KERN_INFO,
|
|
|
+ "norecovery option specified, skipping roll-forward recovery");
|
|
|
goto skip_recovery;
|
|
|
}
|
|
|
features = le64_to_cpu(nilfs->ns_sbp[0]->s_feature_compat_ro) &
|
|
|
~NILFS_FEATURE_COMPAT_RO_SUPP;
|
|
|
if (features) {
|
|
|
- printk(KERN_ERR "NILFS: couldn't proceed with "
|
|
|
- "recovery because of unsupported optional "
|
|
|
- "features (%llx)\n",
|
|
|
- (unsigned long long)features);
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "couldn't proceed with recovery because of unsupported optional features (%llx)",
|
|
|
+ (unsigned long long)features);
|
|
|
err = -EROFS;
|
|
|
goto failed_unload;
|
|
|
}
|
|
|
if (really_read_only) {
|
|
|
- printk(KERN_ERR "NILFS: write access "
|
|
|
- "unavailable, cannot proceed.\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "write access unavailable, cannot proceed");
|
|
|
err = -EROFS;
|
|
|
goto failed_unload;
|
|
|
}
|
|
|
sb->s_flags &= ~MS_RDONLY;
|
|
|
} else if (nilfs_test_opt(nilfs, NORECOVERY)) {
|
|
|
- printk(KERN_ERR "NILFS: recovery cancelled because norecovery "
|
|
|
- "option was specified for a read/write mount\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "recovery cancelled because norecovery option was specified for a read/write mount");
|
|
|
err = -EINVAL;
|
|
|
goto failed_unload;
|
|
|
}
|
|
@@ -326,11 +327,12 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
up_write(&nilfs->ns_sem);
|
|
|
|
|
|
if (err) {
|
|
|
- printk(KERN_ERR "NILFS: failed to update super block. "
|
|
|
- "recovery unfinished.\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "error %d updating super block. recovery unfinished.",
|
|
|
+ err);
|
|
|
goto failed_unload;
|
|
|
}
|
|
|
- printk(KERN_INFO "NILFS: recovery complete.\n");
|
|
|
+ nilfs_msg(sb, KERN_INFO, "recovery complete");
|
|
|
|
|
|
skip_recovery:
|
|
|
nilfs_clear_recovery_info(&ri);
|
|
@@ -338,7 +340,7 @@ int load_nilfs(struct the_nilfs *nilfs, struct super_block *sb)
|
|
|
return 0;
|
|
|
|
|
|
scan_error:
|
|
|
- printk(KERN_ERR "NILFS: error searching super root.\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR, "error %d while searching super root", err);
|
|
|
goto failed;
|
|
|
|
|
|
failed_unload:
|
|
@@ -385,12 +387,11 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
|
|
|
struct nilfs_super_block *sbp)
|
|
|
{
|
|
|
if (le32_to_cpu(sbp->s_rev_level) < NILFS_MIN_SUPP_REV) {
|
|
|
- printk(KERN_ERR "NILFS: unsupported revision "
|
|
|
- "(superblock rev.=%d.%d, current rev.=%d.%d). "
|
|
|
- "Please check the version of mkfs.nilfs.\n",
|
|
|
- le32_to_cpu(sbp->s_rev_level),
|
|
|
- le16_to_cpu(sbp->s_minor_rev_level),
|
|
|
- NILFS_CURRENT_REV, NILFS_MINOR_REV);
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "unsupported revision (superblock rev.=%d.%d, current rev.=%d.%d). Please check the version of mkfs.nilfs(2).",
|
|
|
+ le32_to_cpu(sbp->s_rev_level),
|
|
|
+ le16_to_cpu(sbp->s_minor_rev_level),
|
|
|
+ NILFS_CURRENT_REV, NILFS_MINOR_REV);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
nilfs->ns_sbsize = le16_to_cpu(sbp->s_bytes);
|
|
@@ -399,12 +400,14 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
|
|
|
|
|
|
nilfs->ns_inode_size = le16_to_cpu(sbp->s_inode_size);
|
|
|
if (nilfs->ns_inode_size > nilfs->ns_blocksize) {
|
|
|
- printk(KERN_ERR "NILFS: too large inode size: %d bytes.\n",
|
|
|
- nilfs->ns_inode_size);
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "too large inode size: %d bytes",
|
|
|
+ nilfs->ns_inode_size);
|
|
|
return -EINVAL;
|
|
|
} else if (nilfs->ns_inode_size < NILFS_MIN_INODE_SIZE) {
|
|
|
- printk(KERN_ERR "NILFS: too small inode size: %d bytes.\n",
|
|
|
- nilfs->ns_inode_size);
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "too small inode size: %d bytes",
|
|
|
+ nilfs->ns_inode_size);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -412,7 +415,9 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
|
|
|
|
|
|
nilfs->ns_blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment);
|
|
|
if (nilfs->ns_blocks_per_segment < NILFS_SEG_MIN_BLOCKS) {
|
|
|
- printk(KERN_ERR "NILFS: too short segment.\n");
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "too short segment: %lu blocks",
|
|
|
+ nilfs->ns_blocks_per_segment);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -421,7 +426,9 @@ static int nilfs_store_disk_layout(struct the_nilfs *nilfs,
|
|
|
le32_to_cpu(sbp->s_r_segments_percentage);
|
|
|
if (nilfs->ns_r_segments_percentage < 1 ||
|
|
|
nilfs->ns_r_segments_percentage > 99) {
|
|
|
- printk(KERN_ERR "NILFS: invalid reserved segments percentage.\n");
|
|
|
+ nilfs_msg(nilfs->ns_sb, KERN_ERR,
|
|
|
+ "invalid reserved segments percentage: %lu",
|
|
|
+ nilfs->ns_r_segments_percentage);
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
@@ -505,16 +512,16 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
|
|
|
|
|
|
if (!sbp[0]) {
|
|
|
if (!sbp[1]) {
|
|
|
- printk(KERN_ERR "NILFS: unable to read superblock\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR, "unable to read superblock");
|
|
|
return -EIO;
|
|
|
}
|
|
|
- printk(KERN_WARNING
|
|
|
- "NILFS warning: unable to read primary superblock "
|
|
|
- "(blocksize = %d)\n", blocksize);
|
|
|
+ nilfs_msg(sb, KERN_WARNING,
|
|
|
+ "unable to read primary superblock (blocksize = %d)",
|
|
|
+ blocksize);
|
|
|
} else if (!sbp[1]) {
|
|
|
- printk(KERN_WARNING
|
|
|
- "NILFS warning: unable to read secondary superblock "
|
|
|
- "(blocksize = %d)\n", blocksize);
|
|
|
+ nilfs_msg(sb, KERN_WARNING,
|
|
|
+ "unable to read secondary superblock (blocksize = %d)",
|
|
|
+ blocksize);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -536,14 +543,14 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
|
|
|
}
|
|
|
if (!valid[swp]) {
|
|
|
nilfs_release_super_block(nilfs);
|
|
|
- printk(KERN_ERR "NILFS: Can't find nilfs on dev %s.\n",
|
|
|
- sb->s_id);
|
|
|
+ nilfs_msg(sb, KERN_ERR, "couldn't find nilfs on the device");
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
if (!valid[!swp])
|
|
|
- printk(KERN_WARNING "NILFS warning: broken superblock. "
|
|
|
- "using spare superblock (blocksize = %d).\n", blocksize);
|
|
|
+ nilfs_msg(sb, KERN_WARNING,
|
|
|
+ "broken superblock, retrying with spare superblock (blocksize = %d)",
|
|
|
+ blocksize);
|
|
|
if (swp)
|
|
|
nilfs_swap_super_block(nilfs);
|
|
|
|
|
@@ -577,7 +584,7 @@ int init_nilfs(struct the_nilfs *nilfs, struct super_block *sb, char *data)
|
|
|
|
|
|
blocksize = sb_min_blocksize(sb, NILFS_MIN_BLOCK_SIZE);
|
|
|
if (!blocksize) {
|
|
|
- printk(KERN_ERR "NILFS: unable to set blocksize\n");
|
|
|
+ nilfs_msg(sb, KERN_ERR, "unable to set blocksize");
|
|
|
err = -EINVAL;
|
|
|
goto out;
|
|
|
}
|
|
@@ -596,8 +603,9 @@ int init_nilfs(struct the_nilfs *nilfs, struct super_block *sb, char *data)
|
|
|
blocksize = BLOCK_SIZE << le32_to_cpu(sbp->s_log_block_size);
|
|
|
if (blocksize < NILFS_MIN_BLOCK_SIZE ||
|
|
|
blocksize > NILFS_MAX_BLOCK_SIZE) {
|
|
|
- printk(KERN_ERR "NILFS: couldn't mount because of unsupported "
|
|
|
- "filesystem blocksize %d\n", blocksize);
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "couldn't mount because of unsupported filesystem blocksize %d",
|
|
|
+ blocksize);
|
|
|
err = -EINVAL;
|
|
|
goto failed_sbh;
|
|
|
}
|
|
@@ -605,10 +613,9 @@ int init_nilfs(struct the_nilfs *nilfs, struct super_block *sb, char *data)
|
|
|
int hw_blocksize = bdev_logical_block_size(sb->s_bdev);
|
|
|
|
|
|
if (blocksize < hw_blocksize) {
|
|
|
- printk(KERN_ERR
|
|
|
- "NILFS: blocksize %d too small for device "
|
|
|
- "(sector-size = %d).\n",
|
|
|
- blocksize, hw_blocksize);
|
|
|
+ nilfs_msg(sb, KERN_ERR,
|
|
|
+ "blocksize %d too small for device (sector-size = %d)",
|
|
|
+ blocksize, hw_blocksize);
|
|
|
err = -EINVAL;
|
|
|
goto failed_sbh;
|
|
|
}
|