Skip to content

Commit 8bec061

Browse files
author
Al Viro
committed
ufs: untangle ubh_...block...(), part 2
pass cylinder group descriptor instead of its buffer head (ubh, always UCPI_UBH(ucpi)) and its ->c_freeoff. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
1 parent 65136e4 commit 8bec061

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

fs/ufs/balloc.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ void ufs_free_fragments(struct inode *inode, u64 fragment, unsigned count)
9595
* Trying to reassemble free fragments into block
9696
*/
9797
blkno = ufs_fragstoblks (bbase);
98-
if (ubh_isblockset(uspi, UCPI_UBH(ucpi), ucpi->c_freeoff, blkno)) {
98+
if (ubh_isblockset(uspi, ucpi, blkno)) {
9999
fs32_sub(sb, &ucg->cg_cs.cs_nffree, uspi->s_fpb);
100100
uspi->cs_total.cs_nffree -= uspi->s_fpb;
101101
fs32_sub(sb, &UFS_SB(sb)->fs_cs(cgno).cs_nffree, uspi->s_fpb);
@@ -182,10 +182,10 @@ void ufs_free_blocks(struct inode *inode, u64 fragment, unsigned count)
182182

183183
for (i = bit; i < end_bit; i += uspi->s_fpb) {
184184
blkno = ufs_fragstoblks(i);
185-
if (ubh_isblockset(uspi, UCPI_UBH(ucpi), ucpi->c_freeoff, blkno)) {
185+
if (ubh_isblockset(uspi, ucpi, blkno)) {
186186
ufs_error(sb, "ufs_free_blocks", "freeing free fragment");
187187
}
188-
ubh_setblock(uspi, UCPI_UBH(ucpi), ucpi->c_freeoff, blkno);
188+
ubh_setblock(uspi, ucpi, blkno);
189189
inode_sub_bytes(inode, uspi->s_fpb << uspi->s_fshift);
190190
if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD)
191191
ufs_clusteracct (sb, ucpi, blkno, 1);
@@ -716,7 +716,7 @@ static u64 ufs_alloccg_block(struct inode *inode,
716716
/*
717717
* If the requested block is available, use it.
718718
*/
719-
if (ubh_isblockset(uspi, UCPI_UBH(ucpi), ucpi->c_freeoff, ufs_fragstoblks(goal))) {
719+
if (ubh_isblockset(uspi, ucpi, ufs_fragstoblks(goal))) {
720720
result = goal;
721721
goto gotit;
722722
}
@@ -730,7 +730,7 @@ static u64 ufs_alloccg_block(struct inode *inode,
730730
if (!try_add_frags(inode, uspi->s_fpb))
731731
return 0;
732732
blkno = ufs_fragstoblks(result);
733-
ubh_clrblock(uspi, UCPI_UBH(ucpi), ucpi->c_freeoff, blkno);
733+
ubh_clrblock(uspi, ucpi, blkno);
734734
if ((UFS_SB(sb)->s_flags & UFS_CG_MASK) == UFS_CG_44BSD)
735735
ufs_clusteracct (sb, ucpi, blkno, -1);
736736

fs/ufs/util.h

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,11 @@ static inline unsigned _ubh_find_last_zero_bit_(
455455
return (base << uspi->s_bpfshift) + pos - begin;
456456
}
457457

458-
static inline int ubh_isblockset(struct ufs_sb_private_info * uspi,
459-
struct ufs_buffer_head * ubh, unsigned begin, unsigned block)
458+
static inline int ubh_isblockset(struct ufs_sb_private_info *uspi,
459+
struct ufs_cg_private_info *ucpi, unsigned block)
460460
{
461+
struct ufs_buffer_head *ubh = UCPI_UBH(ucpi);
462+
unsigned begin = ucpi->c_freeoff;
461463
u8 mask;
462464
switch (uspi->s_fpb) {
463465
case 8:
@@ -475,9 +477,11 @@ static inline int ubh_isblockset(struct ufs_sb_private_info * uspi,
475477
return 0;
476478
}
477479

478-
static inline void ubh_clrblock(struct ufs_sb_private_info * uspi,
479-
struct ufs_buffer_head * ubh, unsigned begin, unsigned block)
480+
static inline void ubh_clrblock(struct ufs_sb_private_info *uspi,
481+
struct ufs_cg_private_info *ucpi, unsigned block)
480482
{
483+
struct ufs_buffer_head *ubh = UCPI_UBH(ucpi);
484+
unsigned begin = ucpi->c_freeoff;
481485
switch (uspi->s_fpb) {
482486
case 8:
483487
*ubh_get_addr (ubh, begin + block) = 0x00;
@@ -495,8 +499,10 @@ static inline void ubh_clrblock(struct ufs_sb_private_info * uspi,
495499
}
496500

497501
static inline void ubh_setblock(struct ufs_sb_private_info * uspi,
498-
struct ufs_buffer_head * ubh, unsigned begin, unsigned block)
502+
struct ufs_cg_private_info *ucpi, unsigned block)
499503
{
504+
struct ufs_buffer_head *ubh = UCPI_UBH(ucpi);
505+
unsigned begin = ucpi->c_freeoff;
500506
switch (uspi->s_fpb) {
501507
case 8:
502508
*ubh_get_addr(ubh, begin + block) = 0xff;

0 commit comments

Comments
 (0)