patch-2.4.27 linux-2.4.27/fs/jfs/jfs_imap.c
Next file: linux-2.4.27/fs/jfs/jfs_incore.h
Previous file: linux-2.4.27/fs/jfs/jfs_extent.c
Back to the patch index
Back to the overall index
- Lines: 38
- Date:
2004-08-07 16:26:05.996401920 -0700
- Orig file:
linux-2.4.26/fs/jfs/jfs_imap.c
- Orig date:
2004-04-14 06:05:40.000000000 -0700
diff -urN linux-2.4.26/fs/jfs/jfs_imap.c linux-2.4.27/fs/jfs/jfs_imap.c
@@ -1286,6 +1286,7 @@
* to be freed by the transaction;
*/
tid = txBegin(ipimap->i_sb, COMMIT_FORCE);
+ down(&JFS_IP(ipimap)->commit_sem);
/* acquire tlock of the iag page of the freed ixad
* to force the page NOHOMEOK (even though no data is
@@ -1318,6 +1319,7 @@
rc = txCommit(tid, 1, &iplist[0], COMMIT_FORCE);
txEnd(tid);
+ up(&JFS_IP(ipimap)->commit_sem);
/* unlock the AG inode map information */
AG_UNLOCK(imap, agno);
@@ -2630,10 +2632,13 @@
*/
#endif /* _STILL_TO_PORT */
tid = txBegin(sb, COMMIT_FORCE);
+ down(&JFS_IP(ipimap)->commit_sem);
/* update the inode map addressing structure to point to it */
if ((rc =
xtInsert(tid, ipimap, 0, blkno, xlen, &xaddr, 0))) {
+ txEnd(tid);
+ up(&JFS_IP(ipimap)->commit_sem);
/* Free the blocks allocated for the iag since it was
* not successfully added to the inode map
*/
@@ -2658,6 +2663,7 @@
rc = txCommit(tid, 1, &iplist[0], COMMIT_FORCE);
txEnd(tid);
+ up(&JFS_IP(ipimap)->commit_sem);
duplicateIXtree(sb, blkno, xlen, &xaddr);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)