diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-07 11:10:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-07 11:10:48 -0500 |
commit | 5331be090567d9335476f876b2d85427cd7c4426 (patch) | |
tree | 356842da9d4c3966a9781f6eb05fa77beec144bc /fs/jfs/jfs_dmap.c | |
parent | d3f8fd765e94b9137e1f27bbb0ac25289f9e565c (diff) | |
parent | 7220c0177b45600eef2cfd3e5e57ab5b96f3222c (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
JFS: Remove incorrect kgdb define
JFS: call io_schedule() instead of schedule() to avoid deadlock
JFS: Add lockdep annotations
JFS: Avoid BUG() on a damaged file system
Diffstat (limited to 'fs/jfs/jfs_dmap.c')
-rw-r--r-- | fs/jfs/jfs_dmap.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/jfs/jfs_dmap.c b/fs/jfs/jfs_dmap.c index 23546c8fd48b..82b0544bd76d 100644 --- a/fs/jfs/jfs_dmap.c +++ b/fs/jfs/jfs_dmap.c | |||
@@ -337,7 +337,7 @@ int dbFree(struct inode *ip, s64 blkno, s64 nblocks) | |||
337 | struct inode *ipbmap = JFS_SBI(ip->i_sb)->ipbmap; | 337 | struct inode *ipbmap = JFS_SBI(ip->i_sb)->ipbmap; |
338 | struct bmap *bmp = JFS_SBI(ip->i_sb)->bmap; | 338 | struct bmap *bmp = JFS_SBI(ip->i_sb)->bmap; |
339 | 339 | ||
340 | IREAD_LOCK(ipbmap); | 340 | IREAD_LOCK(ipbmap, RDWRLOCK_DMAP); |
341 | 341 | ||
342 | /* block to be freed better be within the mapsize. */ | 342 | /* block to be freed better be within the mapsize. */ |
343 | if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { | 343 | if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { |
@@ -733,7 +733,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results) | |||
733 | * allocation group size, try to allocate anywhere. | 733 | * allocation group size, try to allocate anywhere. |
734 | */ | 734 | */ |
735 | if (l2nb > bmp->db_agl2size) { | 735 | if (l2nb > bmp->db_agl2size) { |
736 | IWRITE_LOCK(ipbmap); | 736 | IWRITE_LOCK(ipbmap, RDWRLOCK_DMAP); |
737 | 737 | ||
738 | rc = dbAllocAny(bmp, nblocks, l2nb, results); | 738 | rc = dbAllocAny(bmp, nblocks, l2nb, results); |
739 | 739 | ||
@@ -774,7 +774,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results) | |||
774 | * the hint using a tiered strategy. | 774 | * the hint using a tiered strategy. |
775 | */ | 775 | */ |
776 | if (nblocks <= BPERDMAP) { | 776 | if (nblocks <= BPERDMAP) { |
777 | IREAD_LOCK(ipbmap); | 777 | IREAD_LOCK(ipbmap, RDWRLOCK_DMAP); |
778 | 778 | ||
779 | /* get the buffer for the dmap containing the hint. | 779 | /* get the buffer for the dmap containing the hint. |
780 | */ | 780 | */ |
@@ -844,7 +844,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results) | |||
844 | /* try to satisfy the allocation request with blocks within | 844 | /* try to satisfy the allocation request with blocks within |
845 | * the same allocation group as the hint. | 845 | * the same allocation group as the hint. |
846 | */ | 846 | */ |
847 | IWRITE_LOCK(ipbmap); | 847 | IWRITE_LOCK(ipbmap, RDWRLOCK_DMAP); |
848 | if ((rc = dbAllocAG(bmp, agno, nblocks, l2nb, results)) != -ENOSPC) | 848 | if ((rc = dbAllocAG(bmp, agno, nblocks, l2nb, results)) != -ENOSPC) |
849 | goto write_unlock; | 849 | goto write_unlock; |
850 | 850 | ||
@@ -856,7 +856,7 @@ int dbAlloc(struct inode *ip, s64 hint, s64 nblocks, s64 * results) | |||
856 | * Let dbNextAG recommend a preferred allocation group | 856 | * Let dbNextAG recommend a preferred allocation group |
857 | */ | 857 | */ |
858 | agno = dbNextAG(ipbmap); | 858 | agno = dbNextAG(ipbmap); |
859 | IWRITE_LOCK(ipbmap); | 859 | IWRITE_LOCK(ipbmap, RDWRLOCK_DMAP); |
860 | 860 | ||
861 | /* Try to allocate within this allocation group. if that fails, try to | 861 | /* Try to allocate within this allocation group. if that fails, try to |
862 | * allocate anywhere in the map. | 862 | * allocate anywhere in the map. |
@@ -900,7 +900,7 @@ int dbAllocExact(struct inode *ip, s64 blkno, int nblocks) | |||
900 | s64 lblkno; | 900 | s64 lblkno; |
901 | struct metapage *mp; | 901 | struct metapage *mp; |
902 | 902 | ||
903 | IREAD_LOCK(ipbmap); | 903 | IREAD_LOCK(ipbmap, RDWRLOCK_DMAP); |
904 | 904 | ||
905 | /* | 905 | /* |
906 | * validate extent request: | 906 | * validate extent request: |
@@ -1050,7 +1050,7 @@ static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) | |||
1050 | */ | 1050 | */ |
1051 | extblkno = lastblkno + 1; | 1051 | extblkno = lastblkno + 1; |
1052 | 1052 | ||
1053 | IREAD_LOCK(ipbmap); | 1053 | IREAD_LOCK(ipbmap, RDWRLOCK_DMAP); |
1054 | 1054 | ||
1055 | /* better be within the file system */ | 1055 | /* better be within the file system */ |
1056 | bmp = sbi->bmap; | 1056 | bmp = sbi->bmap; |
@@ -3116,7 +3116,7 @@ int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) | |||
3116 | struct inode *ipbmap = JFS_SBI(ip->i_sb)->ipbmap; | 3116 | struct inode *ipbmap = JFS_SBI(ip->i_sb)->ipbmap; |
3117 | struct bmap *bmp = JFS_SBI(ip->i_sb)->bmap; | 3117 | struct bmap *bmp = JFS_SBI(ip->i_sb)->bmap; |
3118 | 3118 | ||
3119 | IREAD_LOCK(ipbmap); | 3119 | IREAD_LOCK(ipbmap, RDWRLOCK_DMAP); |
3120 | 3120 | ||
3121 | /* block to be allocated better be within the mapsize. */ | 3121 | /* block to be allocated better be within the mapsize. */ |
3122 | ASSERT(nblocks <= bmp->db_mapsize - blkno); | 3122 | ASSERT(nblocks <= bmp->db_mapsize - blkno); |