Merge branch 'for-linus' of git://git.open-osd.org/linux-open-osd
[~shefty/rdma-dev.git] / fs / exofs / super.c
index 6c5397ad7a2aa4e2e3f45f46e31c6f6e7da8cb1f..735ca06430ac9df3aadb6d470f4a16a3ea0e5f89 100644 (file)
@@ -755,6 +755,7 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
        sb->s_blocksize = EXOFS_BLKSIZE;
        sb->s_blocksize_bits = EXOFS_BLKSHIFT;
        sb->s_maxbytes = MAX_LFS_FILESIZE;
+       sb->s_max_links = EXOFS_LINK_MAX;
        atomic_set(&sbi->s_curr_pending, 0);
        sb->s_bdev = NULL;
        sb->s_dev = 0;
@@ -819,9 +820,8 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
                ret = PTR_ERR(root);
                goto free_sbi;
        }
-       sb->s_root = d_alloc_root(root);
+       sb->s_root = d_make_root(root);
        if (!sb->s_root) {
-               iput(root);
                EXOFS_ERR("ERROR: get root inode failed\n");
                ret = -ENOMEM;
                goto free_sbi;