@@ -632,7 +632,7 @@ enum alloc_state {
632
632
};
633
633
634
634
/**
635
- * gfs2_iomap_alloc - Build a metadata tree of the requested height
635
+ * __gfs2_iomap_alloc - Build a metadata tree of the requested height
636
636
* @inode: The GFS2 inode
637
637
* @iomap: The iomap structure
638
638
* @mp: The metapath, with proper height information calculated
@@ -642,7 +642,7 @@ enum alloc_state {
642
642
* ii) Indirect blocks to fill in lower part of the metadata tree
643
643
* iii) Data blocks
644
644
*
645
- * This function is called after gfs2_iomap_get , which works out the
645
+ * This function is called after __gfs2_iomap_get , which works out the
646
646
* total number of blocks which we need via gfs2_alloc_size.
647
647
*
648
648
* We then do the actual allocation asking for an extent at a time (if
@@ -660,8 +660,8 @@ enum alloc_state {
660
660
* Returns: errno on error
661
661
*/
662
662
663
- static int gfs2_iomap_alloc (struct inode * inode , struct iomap * iomap ,
664
- struct metapath * mp )
663
+ static int __gfs2_iomap_alloc (struct inode * inode , struct iomap * iomap ,
664
+ struct metapath * mp )
665
665
{
666
666
struct gfs2_inode * ip = GFS2_I (inode );
667
667
struct gfs2_sbd * sdp = GFS2_SB (inode );
@@ -802,10 +802,10 @@ static u64 gfs2_alloc_size(struct inode *inode, struct metapath *mp, u64 size)
802
802
803
803
/*
804
804
* For writes to stuffed files, this function is called twice via
805
- * gfs2_iomap_get , before and after unstuffing. The size we return the
805
+ * __gfs2_iomap_get , before and after unstuffing. The size we return the
806
806
* first time needs to be large enough to get the reservation and
807
807
* allocation sizes right. The size we return the second time must
808
- * be exact or else gfs2_iomap_alloc won't do the right thing.
808
+ * be exact or else __gfs2_iomap_alloc won't do the right thing.
809
809
*/
810
810
811
811
if (gfs2_is_stuffed (ip ) || mp -> mp_fheight != mp -> mp_aheight ) {
@@ -829,7 +829,7 @@ static u64 gfs2_alloc_size(struct inode *inode, struct metapath *mp, u64 size)
829
829
}
830
830
831
831
/**
832
- * gfs2_iomap_get - Map blocks from an inode to disk blocks
832
+ * __gfs2_iomap_get - Map blocks from an inode to disk blocks
833
833
* @inode: The inode
834
834
* @pos: Starting position in bytes
835
835
* @length: Length to map, in bytes
@@ -839,9 +839,9 @@ static u64 gfs2_alloc_size(struct inode *inode, struct metapath *mp, u64 size)
839
839
*
840
840
* Returns: errno
841
841
*/
842
- static int gfs2_iomap_get (struct inode * inode , loff_t pos , loff_t length ,
843
- unsigned flags , struct iomap * iomap ,
844
- struct metapath * mp )
842
+ static int __gfs2_iomap_get (struct inode * inode , loff_t pos , loff_t length ,
843
+ unsigned flags , struct iomap * iomap ,
844
+ struct metapath * mp )
845
845
{
846
846
struct gfs2_inode * ip = GFS2_I (inode );
847
847
struct gfs2_sbd * sdp = GFS2_SB (inode );
@@ -975,12 +975,10 @@ static int gfs2_iomap_get(struct inode *inode, loff_t pos, loff_t length,
975
975
int gfs2_lblk_to_dblk (struct inode * inode , u32 lblock , u64 * dblock )
976
976
{
977
977
struct iomap iomap = { };
978
- struct metapath mp = { .mp_aheight = 1 , };
979
978
loff_t pos = (loff_t )lblock << inode -> i_blkbits ;
980
979
int ret ;
981
980
982
- ret = gfs2_iomap_get (inode , pos , i_blocksize (inode ), 0 , & iomap , & mp );
983
- release_metapath (& mp );
981
+ ret = gfs2_iomap_get (inode , pos , i_blocksize (inode ), & iomap );
984
982
if (ret == 0 )
985
983
* dblock = iomap .addr >> inode -> i_blkbits ;
986
984
@@ -1109,14 +1107,14 @@ static int gfs2_iomap_begin_write(struct inode *inode, loff_t pos,
1109
1107
if (ret )
1110
1108
goto out_trans_end ;
1111
1109
release_metapath (mp );
1112
- ret = gfs2_iomap_get (inode , iomap -> offset ,
1113
- iomap -> length , flags , iomap , mp );
1110
+ ret = __gfs2_iomap_get (inode , iomap -> offset ,
1111
+ iomap -> length , flags , iomap , mp );
1114
1112
if (ret )
1115
1113
goto out_trans_end ;
1116
1114
}
1117
1115
1118
1116
if (iomap -> type == IOMAP_HOLE ) {
1119
- ret = gfs2_iomap_alloc (inode , iomap , mp );
1117
+ ret = __gfs2_iomap_alloc (inode , iomap , mp );
1120
1118
if (ret ) {
1121
1119
gfs2_trans_end (sdp );
1122
1120
gfs2_inplace_release (ip );
@@ -1168,7 +1166,7 @@ static int gfs2_iomap_begin(struct inode *inode, loff_t pos, loff_t length,
1168
1166
goto out ;
1169
1167
}
1170
1168
1171
- ret = gfs2_iomap_get (inode , pos , length , flags , iomap , & mp );
1169
+ ret = __gfs2_iomap_get (inode , pos , length , flags , iomap , & mp );
1172
1170
if (ret )
1173
1171
goto out_unlock ;
1174
1172
@@ -1290,20 +1288,18 @@ int gfs2_block_map(struct inode *inode, sector_t lblock,
1290
1288
struct gfs2_inode * ip = GFS2_I (inode );
1291
1289
loff_t pos = (loff_t )lblock << inode -> i_blkbits ;
1292
1290
loff_t length = bh_map -> b_size ;
1293
- struct metapath mp = { .mp_aheight = 1 , };
1294
1291
struct iomap iomap = { };
1295
- int flags = create ? IOMAP_WRITE : 0 ;
1296
1292
int ret ;
1297
1293
1298
1294
clear_buffer_mapped (bh_map );
1299
1295
clear_buffer_new (bh_map );
1300
1296
clear_buffer_boundary (bh_map );
1301
1297
trace_gfs2_bmap (ip , bh_map , lblock , create , 1 );
1302
1298
1303
- ret = gfs2_iomap_get ( inode , pos , length , flags , & iomap , & mp );
1304
- if ( create && ! ret && iomap . type == IOMAP_HOLE )
1305
- ret = gfs2_iomap_alloc ( inode , & iomap , & mp );
1306
- release_metapath ( & mp );
1299
+ if (! create )
1300
+ ret = gfs2_iomap_get ( inode , pos , length , & iomap );
1301
+ else
1302
+ ret = gfs2_iomap_alloc ( inode , pos , length , & iomap );
1307
1303
if (ret )
1308
1304
goto out ;
1309
1305
@@ -1461,15 +1457,26 @@ static int trunc_start(struct inode *inode, u64 newsize)
1461
1457
return error ;
1462
1458
}
1463
1459
1464
- int gfs2_iomap_get_alloc (struct inode * inode , loff_t pos , loff_t length ,
1465
- struct iomap * iomap )
1460
+ int gfs2_iomap_get (struct inode * inode , loff_t pos , loff_t length ,
1461
+ struct iomap * iomap )
1462
+ {
1463
+ struct metapath mp = { .mp_aheight = 1 , };
1464
+ int ret ;
1465
+
1466
+ ret = __gfs2_iomap_get (inode , pos , length , 0 , iomap , & mp );
1467
+ release_metapath (& mp );
1468
+ return ret ;
1469
+ }
1470
+
1471
+ int gfs2_iomap_alloc (struct inode * inode , loff_t pos , loff_t length ,
1472
+ struct iomap * iomap )
1466
1473
{
1467
1474
struct metapath mp = { .mp_aheight = 1 , };
1468
1475
int ret ;
1469
1476
1470
- ret = gfs2_iomap_get (inode , pos , length , IOMAP_WRITE , iomap , & mp );
1477
+ ret = __gfs2_iomap_get (inode , pos , length , IOMAP_WRITE , iomap , & mp );
1471
1478
if (!ret && iomap -> type == IOMAP_HOLE )
1472
- ret = gfs2_iomap_alloc (inode , iomap , & mp );
1479
+ ret = __gfs2_iomap_alloc (inode , iomap , & mp );
1473
1480
release_metapath (& mp );
1474
1481
return ret ;
1475
1482
}
@@ -2519,7 +2526,6 @@ int __gfs2_punch_hole(struct file *file, loff_t offset, loff_t length)
2519
2526
static int gfs2_map_blocks (struct iomap_writepage_ctx * wpc , struct inode * inode ,
2520
2527
loff_t offset )
2521
2528
{
2522
- struct metapath mp = { .mp_aheight = 1 , };
2523
2529
int ret ;
2524
2530
2525
2531
if (WARN_ON_ONCE (gfs2_is_stuffed (GFS2_I (inode ))))
@@ -2530,8 +2536,7 @@ static int gfs2_map_blocks(struct iomap_writepage_ctx *wpc, struct inode *inode,
2530
2536
return 0 ;
2531
2537
2532
2538
memset (& wpc -> iomap , 0 , sizeof (wpc -> iomap ));
2533
- ret = gfs2_iomap_get (inode , offset , INT_MAX , 0 , & wpc -> iomap , & mp );
2534
- release_metapath (& mp );
2539
+ ret = gfs2_iomap_get (inode , offset , INT_MAX , & wpc -> iomap );
2535
2540
return ret ;
2536
2541
}
2537
2542
0 commit comments