diff options
-rw-r--r-- | fs/xfs/linux-2.6/xfs_iops.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 4bd3d03b23ed..521bf3834b43 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c | |||
@@ -474,11 +474,14 @@ linvfs_symlink( | |||
474 | 474 | ||
475 | error = 0; | 475 | error = 0; |
476 | VOP_SYMLINK(dvp, dentry, &va, (char *)symname, &cvp, NULL, error); | 476 | VOP_SYMLINK(dvp, dentry, &va, (char *)symname, &cvp, NULL, error); |
477 | if (!error && cvp) { | 477 | if (likely(!error && cvp)) { |
478 | ip = LINVFS_GET_IP(cvp); | 478 | error = linvfs_init_security(cvp, dir); |
479 | d_instantiate(dentry, ip); | 479 | if (likely(!error)) { |
480 | validate_fields(dir); | 480 | ip = LINVFS_GET_IP(cvp); |
481 | validate_fields(ip); /* size needs update */ | 481 | d_instantiate(dentry, ip); |
482 | validate_fields(dir); | ||
483 | validate_fields(ip); | ||
484 | } | ||
482 | } | 485 | } |
483 | return -error; | 486 | return -error; |
484 | } | 487 | } |