Skip to content

Commit 2ba39cc

Browse files
Christoph Hellwigaxboe
authored andcommitted
fs: rename and move block_page_mkwrite_return
block_page_mkwrite_return is neither block nor mkwrite specific, and should not be under CONFIG_BLOCK. Move it to mm.h and rename it to vmf_fs_error. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Christian Brauner <brauner@kernel.org> Link: https://lore.kernel.org/r/20230801172201.1923299-3-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 4a8b719 commit 2ba39cc

File tree

8 files changed

+31
-25
lines changed

8 files changed

+31
-25
lines changed

fs/ext4/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6140,7 +6140,7 @@ vm_fault_t ext4_page_mkwrite(struct vm_fault *vmf)
61406140
if (err == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries))
61416141
goto retry_alloc;
61426142
out_ret:
6143-
ret = block_page_mkwrite_return(err);
6143+
ret = vmf_fs_error(err);
61446144
out:
61456145
filemap_invalidate_unlock_shared(mapping);
61466146
sb_end_pagefault(inode->i_sb);

fs/f2fs/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ static vm_fault_t f2fs_vm_page_mkwrite(struct vm_fault *vmf)
159159

160160
sb_end_pagefault(inode->i_sb);
161161
err:
162-
return block_page_mkwrite_return(err);
162+
return vmf_fs_error(err);
163163
}
164164

165165
static const struct vm_operations_struct f2fs_file_vm_ops = {

fs/gfs2/file.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf)
432432
gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh);
433433
err = gfs2_glock_nq(&gh);
434434
if (err) {
435-
ret = block_page_mkwrite_return(err);
435+
ret = vmf_fs_error(err);
436436
goto out_uninit;
437437
}
438438

@@ -474,20 +474,20 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf)
474474

475475
err = gfs2_rindex_update(sdp);
476476
if (err) {
477-
ret = block_page_mkwrite_return(err);
477+
ret = vmf_fs_error(err);
478478
goto out_unlock;
479479
}
480480

481481
gfs2_write_calc_reserv(ip, length, &data_blocks, &ind_blocks);
482482
ap.target = data_blocks + ind_blocks;
483483
err = gfs2_quota_lock_check(ip, &ap);
484484
if (err) {
485-
ret = block_page_mkwrite_return(err);
485+
ret = vmf_fs_error(err);
486486
goto out_unlock;
487487
}
488488
err = gfs2_inplace_reserve(ip, &ap);
489489
if (err) {
490-
ret = block_page_mkwrite_return(err);
490+
ret = vmf_fs_error(err);
491491
goto out_quota_unlock;
492492
}
493493

@@ -500,15 +500,15 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf)
500500
}
501501
err = gfs2_trans_begin(sdp, rblocks, 0);
502502
if (err) {
503-
ret = block_page_mkwrite_return(err);
503+
ret = vmf_fs_error(err);
504504
goto out_trans_fail;
505505
}
506506

507507
/* Unstuff, if required, and allocate backing blocks for page */
508508
if (gfs2_is_stuffed(ip)) {
509509
err = gfs2_unstuff_dinode(ip);
510510
if (err) {
511-
ret = block_page_mkwrite_return(err);
511+
ret = vmf_fs_error(err);
512512
goto out_trans_end;
513513
}
514514
}
@@ -524,7 +524,7 @@ static vm_fault_t gfs2_page_mkwrite(struct vm_fault *vmf)
524524

525525
err = gfs2_allocate_page_backing(page, length);
526526
if (err)
527-
ret = block_page_mkwrite_return(err);
527+
ret = vmf_fs_error(err);
528528

529529
out_page_locked:
530530
if (ret != VM_FAULT_LOCKED)
@@ -558,7 +558,7 @@ static vm_fault_t gfs2_fault(struct vm_fault *vmf)
558558
gfs2_holder_init(ip->i_gl, LM_ST_SHARED, 0, &gh);
559559
err = gfs2_glock_nq(&gh);
560560
if (err) {
561-
ret = block_page_mkwrite_return(err);
561+
ret = vmf_fs_error(err);
562562
goto out_uninit;
563563
}
564564
ret = filemap_fault(vmf);

fs/iomap/buffered-io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1286,7 +1286,7 @@ vm_fault_t iomap_page_mkwrite(struct vm_fault *vmf, const struct iomap_ops *ops)
12861286
return VM_FAULT_LOCKED;
12871287
out_unlock:
12881288
folio_unlock(folio);
1289-
return block_page_mkwrite_return(ret);
1289+
return vmf_fs_error(ret);
12901290
}
12911291
EXPORT_SYMBOL_GPL(iomap_page_mkwrite);
12921292

fs/nilfs2/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ static vm_fault_t nilfs_page_mkwrite(struct vm_fault *vmf)
108108
wait_for_stable_page(page);
109109
out:
110110
sb_end_pagefault(inode->i_sb);
111-
return block_page_mkwrite_return(ret);
111+
return vmf_fs_error(ret);
112112
}
113113

114114
static const struct vm_operations_struct nilfs_file_vm_ops = {

fs/udf/file.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ static vm_fault_t udf_page_mkwrite(struct vm_fault *vmf)
6767
err = block_commit_write(page, 0, end);
6868
if (err < 0) {
6969
unlock_page(page);
70-
ret = block_page_mkwrite_return(err);
70+
ret = vmf_fs_error(err);
7171
goto out_unlock;
7272
}
7373
out_dirty:

include/linux/buffer_head.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -291,18 +291,6 @@ int generic_cont_expand_simple(struct inode *inode, loff_t size);
291291
int block_commit_write(struct page *page, unsigned from, unsigned to);
292292
int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
293293
get_block_t get_block);
294-
/* Convert errno to return value from ->page_mkwrite() call */
295-
static inline vm_fault_t block_page_mkwrite_return(int err)
296-
{
297-
if (err == 0)
298-
return VM_FAULT_LOCKED;
299-
if (err == -EFAULT || err == -EAGAIN)
300-
return VM_FAULT_NOPAGE;
301-
if (err == -ENOMEM)
302-
return VM_FAULT_OOM;
303-
/* -ENOSPC, -EDQUOT, -EIO ... */
304-
return VM_FAULT_SIGBUS;
305-
}
306294
sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *);
307295
int block_truncate_page(struct address_space *, loff_t, get_block_t *);
308296

include/linux/mm.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3386,6 +3386,24 @@ static inline vm_fault_t vmf_error(int err)
33863386
return VM_FAULT_SIGBUS;
33873387
}
33883388

3389+
/*
3390+
* Convert errno to return value for ->page_mkwrite() calls.
3391+
*
3392+
* This should eventually be merged with vmf_error() above, but will need a
3393+
* careful audit of all vmf_error() callers.
3394+
*/
3395+
static inline vm_fault_t vmf_fs_error(int err)
3396+
{
3397+
if (err == 0)
3398+
return VM_FAULT_LOCKED;
3399+
if (err == -EFAULT || err == -EAGAIN)
3400+
return VM_FAULT_NOPAGE;
3401+
if (err == -ENOMEM)
3402+
return VM_FAULT_OOM;
3403+
/* -ENOSPC, -EDQUOT, -EIO ... */
3404+
return VM_FAULT_SIGBUS;
3405+
}
3406+
33893407
struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
33903408
unsigned int foll_flags);
33913409

0 commit comments

Comments
 (0)