diff options
author | David Chinner <dgc@sgi.com> | 2007-07-10 21:09:33 -0400 |
---|---|---|
committer | Tim Shimmin <tes@chook.melbourne.sgi.com> | 2007-07-14 01:41:12 -0400 |
commit | b11f94d537e6b69f13770143fd7ded3d09fdbaab (patch) | |
tree | f0c485c71824285e23e7c4fe1835be6b82ba7183 /fs/xfs/quota/xfs_qm.c | |
parent | 2a82b8be8a8dacb48cb7371449a7a9daa558b4a8 (diff) |
[XFS] Quota inode has no parent.
Avoid using a special "zero inode" as the parent of the quota inode as
this can confuse the filestreams code into thinking the quota inode has a
parent. We do not want the quota inode to follow filestreams allocation
rules, so pass a NULL as the parent inode and detect this condition when
doing stream associations.
SGI-PV: 964469
SGI-Modid: xfs-linux-melb:xfs-kern:29098a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/quota/xfs_qm.c')
-rw-r--r-- | fs/xfs/quota/xfs_qm.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index eeb3d9cc0e8e..7def4c699343 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c | |||
@@ -65,7 +65,6 @@ kmem_zone_t *qm_dqtrxzone; | |||
65 | static struct shrinker *xfs_qm_shaker; | 65 | static struct shrinker *xfs_qm_shaker; |
66 | 66 | ||
67 | static cred_t xfs_zerocr; | 67 | static cred_t xfs_zerocr; |
68 | static xfs_inode_t xfs_zeroino; | ||
69 | 68 | ||
70 | STATIC void xfs_qm_list_init(xfs_dqlist_t *, char *, int); | 69 | STATIC void xfs_qm_list_init(xfs_dqlist_t *, char *, int); |
71 | STATIC void xfs_qm_list_destroy(xfs_dqlist_t *); | 70 | STATIC void xfs_qm_list_destroy(xfs_dqlist_t *); |
@@ -1415,7 +1414,7 @@ xfs_qm_qino_alloc( | |||
1415 | return error; | 1414 | return error; |
1416 | } | 1415 | } |
1417 | 1416 | ||
1418 | if ((error = xfs_dir_ialloc(&tp, &xfs_zeroino, S_IFREG, 1, 0, | 1417 | if ((error = xfs_dir_ialloc(&tp, NULL, S_IFREG, 1, 0, |
1419 | &xfs_zerocr, 0, 1, ip, &committed))) { | 1418 | &xfs_zerocr, 0, 1, ip, &committed))) { |
1420 | xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | | 1419 | xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | |
1421 | XFS_TRANS_ABORT); | 1420 | XFS_TRANS_ABORT); |