Commit 94b77bd86f8ad458fa7870def78ec3a8a7caa986

Authored by Al Viro
1 parent 3d23985d6c

switch jfs to ->s_d_op, close exportfs races

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Showing 2 changed files with 4 additions and 12 deletions Side-by-side Diff

... ... @@ -1465,9 +1465,6 @@
1465 1465  
1466 1466 jfs_info("jfs_lookup: name = %s", name);
1467 1467  
1468   - if (JFS_SBI(dip->i_sb)->mntflag & JFS_OS2)
1469   - d_set_d_op(dentry, &jfs_ci_dentry_operations);
1470   -
1471 1468 if ((name[0] == '.') && (len == 1))
1472 1469 inum = dip->i_ino;
1473 1470 else if (strcmp(name, "..") == 0)
... ... @@ -1492,12 +1489,7 @@
1492 1489 return ERR_CAST(ip);
1493 1490 }
1494 1491  
1495   - dentry = d_splice_alias(ip, dentry);
1496   -
1497   - if (dentry && (JFS_SBI(dip->i_sb)->mntflag & JFS_OS2))
1498   - d_set_d_op(dentry, &jfs_ci_dentry_operations);
1499   -
1500   - return dentry;
  1492 + return d_splice_alias(ip, dentry);
1501 1493 }
1502 1494  
1503 1495 static struct inode *jfs_nfs_get_inode(struct super_block *sb,
... ... @@ -515,6 +515,9 @@
515 515  
516 516 sb->s_magic = JFS_SUPER_MAGIC;
517 517  
  518 + if (sbi->mntflag & JFS_OS2)
  519 + sb->s_d_op = &jfs_ci_dentry_operations;
  520 +
518 521 inode = jfs_iget(sb, ROOT_I);
519 522 if (IS_ERR(inode)) {
520 523 ret = PTR_ERR(inode);
... ... @@ -523,9 +526,6 @@
523 526 sb->s_root = d_alloc_root(inode);
524 527 if (!sb->s_root)
525 528 goto out_no_root;
526   -
527   - if (sbi->mntflag & JFS_OS2)
528   - d_set_d_op(sb->s_root, &jfs_ci_dentry_operations);
529 529  
530 530 /* logical blocks are represented by 40 bits in pxd_t, etc. */
531 531 sb->s_maxbytes = ((u64) sb->s_blocksize) << 40;