Revert "f2fs: resync with upstream 3.4 branch (forced update)"

This reverts commit 6a1be380100e402aacca6a0a3ac829c059768d79.
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index ea40788..96c1af2 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -52,7 +52,6 @@
 	Opt_inline_xattr,
 	Opt_inline_data,
 	Opt_flush_merge,
-	Opt_nobarrier,
 	Opt_err,
 };
 
@@ -70,7 +69,6 @@
 	{Opt_inline_xattr, "inline_xattr"},
 	{Opt_inline_data, "inline_data"},
 	{Opt_flush_merge, "flush_merge"},
-	{Opt_nobarrier, "nobarrier"},
 	{Opt_err, NULL},
 };
 
@@ -341,9 +339,6 @@
 		case Opt_flush_merge:
 			set_opt(sbi, FLUSH_MERGE);
 			break;
-		case Opt_nobarrier:
-			set_opt(sbi, NOBARRIER);
-			break;
 		default:
 			f2fs_msg(sb, KERN_ERR,
 				"Unrecognized mount option \"%s\" or missing value",
@@ -549,8 +544,6 @@
 		seq_puts(seq, ",inline_data");
 	if (!f2fs_readonly(sbi->sb) && test_opt(sbi, FLUSH_MERGE))
 		seq_puts(seq, ",flush_merge");
-	if (test_opt(sbi, NOBARRIER))
-		seq_puts(seq, ",nobarrier");
 	seq_printf(seq, ",active_logs=%u", sbi->active_logs);
 
 	return 0;
@@ -953,7 +946,7 @@
 	mutex_init(&sbi->gc_mutex);
 	mutex_init(&sbi->writepages);
 	mutex_init(&sbi->cp_mutex);
-	init_rwsem(&sbi->node_write);
+	mutex_init(&sbi->node_write);
 	sbi->por_doing = false;
 	spin_lock_init(&sbi->stat_lock);
 
@@ -1003,7 +996,7 @@
 	INIT_LIST_HEAD(&sbi->dir_inode_list);
 	spin_lock_init(&sbi->dir_inode_lock);
 
-	init_ino_entry_info(sbi);
+	init_orphan_info(sbi);
 
 	/* setup f2fs internal modules */
 	err = build_segment_manager(sbi);
@@ -1040,9 +1033,8 @@
 		goto free_node_inode;
 	}
 	if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) {
-		iput(root);
 		err = -EINVAL;
-		goto free_node_inode;
+		goto free_root_inode;
 	}
 
 	sb->s_root = d_make_root(root); /* allocate root dentry */