Commit 461cb419f074aab16836a660efb8e855b6c1609c
Committed by
Steven Whitehouse
1 parent
ba6e93645f
Exists in
master
and in
4 other branches
GFS2: Simplify gfs2_write_alloc_required
Function gfs2_write_alloc_required always returned zero as its return code. Therefore, it doesn't need to return a return code at all. Given that, we can use the return value to return whether or not the dinode needs block allocations rather than passing that value in, which in turn simplifies a bunch of error checking. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Showing 6 changed files with 14 additions and 35 deletions Side-by-side Diff
fs/gfs2/aops.c
... | ... | @@ -634,9 +634,7 @@ |
634 | 634 | } |
635 | 635 | } |
636 | 636 | |
637 | - error = gfs2_write_alloc_required(ip, pos, len, &alloc_required); | |
638 | - if (error) | |
639 | - goto out_unlock; | |
637 | + alloc_required = gfs2_write_alloc_required(ip, pos, len); | |
640 | 638 | |
641 | 639 | if (alloc_required || gfs2_is_jdata(ip)) |
642 | 640 | gfs2_write_calc_reserv(ip, len, &data_blocks, &ind_blocks); |
fs/gfs2/bmap.c
... | ... | @@ -1244,13 +1244,12 @@ |
1244 | 1244 | * @ip: the file being written to |
1245 | 1245 | * @offset: the offset to write to |
1246 | 1246 | * @len: the number of bytes being written |
1247 | - * @alloc_required: set to 1 if an alloc is required, 0 otherwise | |
1248 | 1247 | * |
1249 | - * Returns: errno | |
1248 | + * Returns: 1 if an alloc is required, 0 otherwise | |
1250 | 1249 | */ |
1251 | 1250 | |
1252 | 1251 | int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset, |
1253 | - unsigned int len, int *alloc_required) | |
1252 | + unsigned int len) | |
1254 | 1253 | { |
1255 | 1254 | struct gfs2_sbd *sdp = GFS2_SB(&ip->i_inode); |
1256 | 1255 | struct buffer_head bh; |
1257 | 1256 | |
1258 | 1257 | |
1259 | 1258 | |
... | ... | @@ -1258,26 +1257,23 @@ |
1258 | 1257 | u64 lblock, lblock_stop, size; |
1259 | 1258 | u64 end_of_file; |
1260 | 1259 | |
1261 | - *alloc_required = 0; | |
1262 | - | |
1263 | 1260 | if (!len) |
1264 | 1261 | return 0; |
1265 | 1262 | |
1266 | 1263 | if (gfs2_is_stuffed(ip)) { |
1267 | 1264 | if (offset + len > |
1268 | 1265 | sdp->sd_sb.sb_bsize - sizeof(struct gfs2_dinode)) |
1269 | - *alloc_required = 1; | |
1266 | + return 1; | |
1270 | 1267 | return 0; |
1271 | 1268 | } |
1272 | 1269 | |
1273 | - *alloc_required = 1; | |
1274 | 1270 | shift = sdp->sd_sb.sb_bsize_shift; |
1275 | 1271 | BUG_ON(gfs2_is_dir(ip)); |
1276 | 1272 | end_of_file = (ip->i_disksize + sdp->sd_sb.sb_bsize - 1) >> shift; |
1277 | 1273 | lblock = offset >> shift; |
1278 | 1274 | lblock_stop = (offset + len + sdp->sd_sb.sb_bsize - 1) >> shift; |
1279 | 1275 | if (lblock_stop > end_of_file) |
1280 | - return 0; | |
1276 | + return 1; | |
1281 | 1277 | |
1282 | 1278 | size = (lblock_stop - lblock) << shift; |
1283 | 1279 | do { |
1284 | 1280 | |
... | ... | @@ -1285,12 +1281,11 @@ |
1285 | 1281 | bh.b_size = size; |
1286 | 1282 | gfs2_block_map(&ip->i_inode, lblock, &bh, 0); |
1287 | 1283 | if (!buffer_mapped(&bh)) |
1288 | - return 0; | |
1284 | + return 1; | |
1289 | 1285 | size -= bh.b_size; |
1290 | 1286 | lblock += (bh.b_size >> ip->i_inode.i_blkbits); |
1291 | 1287 | } while(size > 0); |
1292 | 1288 | |
1293 | - *alloc_required = 0; | |
1294 | 1289 | return 0; |
1295 | 1290 | } |
fs/gfs2/bmap.h
... | ... | @@ -52,7 +52,7 @@ |
52 | 52 | int gfs2_truncatei_resume(struct gfs2_inode *ip); |
53 | 53 | int gfs2_file_dealloc(struct gfs2_inode *ip); |
54 | 54 | int gfs2_write_alloc_required(struct gfs2_inode *ip, u64 offset, |
55 | - unsigned int len, int *alloc_required); | |
55 | + unsigned int len); | |
56 | 56 | |
57 | 57 | #endif /* __BMAP_DOT_H__ */ |
fs/gfs2/file.c
... | ... | @@ -351,7 +351,6 @@ |
351 | 351 | unsigned long last_index; |
352 | 352 | u64 pos = page->index << PAGE_CACHE_SHIFT; |
353 | 353 | unsigned int data_blocks, ind_blocks, rblocks; |
354 | - int alloc_required = 0; | |
355 | 354 | struct gfs2_holder gh; |
356 | 355 | struct gfs2_alloc *al; |
357 | 356 | int ret; |
... | ... | @@ -364,8 +363,7 @@ |
364 | 363 | set_bit(GLF_DIRTY, &ip->i_gl->gl_flags); |
365 | 364 | set_bit(GIF_SW_PAGED, &ip->i_flags); |
366 | 365 | |
367 | - ret = gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE, &alloc_required); | |
368 | - if (ret || !alloc_required) | |
366 | + if (!gfs2_write_alloc_required(ip, pos, PAGE_CACHE_SIZE)) | |
369 | 367 | goto out_unlock; |
370 | 368 | ret = -ENOMEM; |
371 | 369 | al = gfs2_alloc_get(ip); |
fs/gfs2/quota.c
... | ... | @@ -787,15 +787,9 @@ |
787 | 787 | goto out; |
788 | 788 | |
789 | 789 | for (x = 0; x < num_qd; x++) { |
790 | - int alloc_required; | |
791 | - | |
792 | 790 | offset = qd2offset(qda[x]); |
793 | - error = gfs2_write_alloc_required(ip, offset, | |
794 | - sizeof(struct gfs2_quota), | |
795 | - &alloc_required); | |
796 | - if (error) | |
797 | - goto out_gunlock; | |
798 | - if (alloc_required) | |
791 | + if (gfs2_write_alloc_required(ip, offset, | |
792 | + sizeof(struct gfs2_quota))) | |
799 | 793 | nalloc++; |
800 | 794 | } |
801 | 795 | |
... | ... | @@ -1584,10 +1578,7 @@ |
1584 | 1578 | goto out_i; |
1585 | 1579 | |
1586 | 1580 | offset = qd2offset(qd); |
1587 | - error = gfs2_write_alloc_required(ip, offset, sizeof(struct gfs2_quota), | |
1588 | - &alloc_required); | |
1589 | - if (error) | |
1590 | - goto out_i; | |
1581 | + alloc_required = gfs2_write_alloc_required(ip, offset, sizeof(struct gfs2_quota)); | |
1591 | 1582 | if (alloc_required) { |
1592 | 1583 | al = gfs2_alloc_get(ip); |
1593 | 1584 | if (al == NULL) |
fs/gfs2/super.c
... | ... | @@ -342,8 +342,6 @@ |
342 | 342 | { |
343 | 343 | struct gfs2_inode *ip = GFS2_I(jd->jd_inode); |
344 | 344 | struct gfs2_sbd *sdp = GFS2_SB(jd->jd_inode); |
345 | - int ar; | |
346 | - int error; | |
347 | 345 | |
348 | 346 | if (ip->i_disksize < (8 << 20) || ip->i_disksize > (1 << 30) || |
349 | 347 | (ip->i_disksize & (sdp->sd_sb.sb_bsize - 1))) { |
350 | 348 | |
351 | 349 | |
... | ... | @@ -352,13 +350,12 @@ |
352 | 350 | } |
353 | 351 | jd->jd_blocks = ip->i_disksize >> sdp->sd_sb.sb_bsize_shift; |
354 | 352 | |
355 | - error = gfs2_write_alloc_required(ip, 0, ip->i_disksize, &ar); | |
356 | - if (!error && ar) { | |
353 | + if (gfs2_write_alloc_required(ip, 0, ip->i_disksize)) { | |
357 | 354 | gfs2_consist_inode(ip); |
358 | - error = -EIO; | |
355 | + return -EIO; | |
359 | 356 | } |
360 | 357 | |
361 | - return error; | |
358 | + return 0; | |
362 | 359 | } |
363 | 360 | |
364 | 361 | /** |