diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:48:25 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-30 20:48:25 -0500 |
commit | 6a94cb73064c952255336cc57731904174b2c58f (patch) | |
tree | d19cc835db0a21e01909a92772868e1ad96f99ff /fs/xfs/xfs_utils.c | |
parent | f57fa1d6a6b3414e853d3d17e339ac48816e4406 (diff) | |
parent | 0a8c5395f90f06d128247844b2515c8bf3f2826b (diff) |
Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs
* 'for-linus' of git://oss.sgi.com/xfs/xfs: (184 commits)
[XFS] Fix race in xfs_write() between direct and buffered I/O with DMAPI
[XFS] handle unaligned data in xfs_bmbt_disk_get_all
[XFS] avoid memory allocations in xfs_fs_vcmn_err
[XFS] Fix speculative allocation beyond eof
[XFS] Remove XFS_BUF_SHUT() and friends
[XFS] Use the incore inode size in xfs_file_readdir()
[XFS] set b_error from bio error in xfs_buf_bio_end_io
[XFS] use inode_change_ok for setattr permission checking
[XFS] add a FMODE flag to make XFS invisible I/O less hacky
[XFS] resync headers with libxfs
[XFS] simplify projid check in xfs_rename
[XFS] replace b_fspriv with b_mount
[XFS] Remove unused tracing code
[XFS] Remove unnecessary assertion
[XFS] Remove unused variable in ktrace_free()
[XFS] Check return value of xfs_buf_get_noaddr()
[XFS] Fix hang after disallowed rename across directory quota domains
[XFS] Fix compile with CONFIG_COMPAT enabled
move inode tracing out of xfs_vnode.
move vn_iowait / vn_iowake into xfs_aops.c
...
Diffstat (limited to 'fs/xfs/xfs_utils.c')
-rw-r--r-- | fs/xfs/xfs_utils.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c index 35d4d414bcc2..fcc2285d03ed 100644 --- a/fs/xfs/xfs_utils.c +++ b/fs/xfs/xfs_utils.c | |||
@@ -172,6 +172,12 @@ xfs_dir_ialloc( | |||
172 | *ipp = NULL; | 172 | *ipp = NULL; |
173 | return code; | 173 | return code; |
174 | } | 174 | } |
175 | |||
176 | /* | ||
177 | * transaction commit worked ok so we can drop the extra ticket | ||
178 | * reference that we gained in xfs_trans_dup() | ||
179 | */ | ||
180 | xfs_log_ticket_put(tp->t_ticket); | ||
175 | code = xfs_trans_reserve(tp, 0, log_res, 0, | 181 | code = xfs_trans_reserve(tp, 0, log_res, 0, |
176 | XFS_TRANS_PERM_LOG_RES, log_count); | 182 | XFS_TRANS_PERM_LOG_RES, log_count); |
177 | /* | 183 | /* |
@@ -268,9 +274,9 @@ xfs_bump_ino_vers2( | |||
268 | xfs_mount_t *mp; | 274 | xfs_mount_t *mp; |
269 | 275 | ||
270 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); | 276 | ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); |
271 | ASSERT(ip->i_d.di_version == XFS_DINODE_VERSION_1); | 277 | ASSERT(ip->i_d.di_version == 1); |
272 | 278 | ||
273 | ip->i_d.di_version = XFS_DINODE_VERSION_2; | 279 | ip->i_d.di_version = 2; |
274 | ip->i_d.di_onlink = 0; | 280 | ip->i_d.di_onlink = 0; |
275 | memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); | 281 | memset(&(ip->i_d.di_pad[0]), 0, sizeof(ip->i_d.di_pad)); |
276 | mp = tp->t_mountp; | 282 | mp = tp->t_mountp; |
@@ -302,7 +308,7 @@ xfs_bumplink( | |||
302 | ASSERT(ip->i_d.di_nlink > 0); | 308 | ASSERT(ip->i_d.di_nlink > 0); |
303 | ip->i_d.di_nlink++; | 309 | ip->i_d.di_nlink++; |
304 | inc_nlink(VFS_I(ip)); | 310 | inc_nlink(VFS_I(ip)); |
305 | if ((ip->i_d.di_version == XFS_DINODE_VERSION_1) && | 311 | if ((ip->i_d.di_version == 1) && |
306 | (ip->i_d.di_nlink > XFS_MAXLINK_1)) { | 312 | (ip->i_d.di_nlink > XFS_MAXLINK_1)) { |
307 | /* | 313 | /* |
308 | * The inode has increased its number of links beyond | 314 | * The inode has increased its number of links beyond |