* block_dirty_folio() via private_lock. try_to_free_buffers
* is already excluded via the folio lock.
*/
-struct buffer_head *folio_create_empty_buffers(struct folio *folio,
+struct buffer_head *create_empty_buffers(struct folio *folio,
unsigned long blocksize, unsigned long b_state)
{
struct buffer_head *bh, *head, *tail;
return head;
}
-EXPORT_SYMBOL(folio_create_empty_buffers);
-
-void create_empty_buffers(struct page *page,
- unsigned long blocksize, unsigned long b_state)
-{
- folio_create_empty_buffers(page_folio(page), blocksize, b_state);
-}
EXPORT_SYMBOL(create_empty_buffers);
/**
bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio,
+ bh = create_empty_buffers(folio,
1 << READ_ONCE(inode->i_blkbits), b_state);
return bh;
}
bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio, blocksize, 0);
+ bh = create_empty_buffers(folio, blocksize, 0);
/* Find the buffer that contains "offset" */
offset = offset_in_folio(folio, from);
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, blocksize, 0);
+ head = create_empty_buffers(folio, blocksize, 0);
bbits = ilog2(blocksize);
block = (sector_t)folio->index << (PAGE_SHIFT - bbits);
* starting the handle.
*/
if (!folio_buffers(folio))
- folio_create_empty_buffers(folio, inode->i_sb->s_blocksize, 0);
+ create_empty_buffers(folio, inode->i_sb->s_blocksize, 0);
folio_unlock(folio);
bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio, blocksize, 0);
+ bh = create_empty_buffers(folio, blocksize, 0);
/* Find the buffer that contains "offset" */
pos = blocksize;
blocksize = i_blocksize(inode);
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, blocksize, 0);
+ head = create_empty_buffers(folio, blocksize, 0);
block = (sector_t)folio->index << (PAGE_SHIFT - inode->i_blkbits);
for (bh = head, block_start = 0; bh != head || !block_start;
* but keeping in mind that i_size will not change */
bh = folio_buffers(folio[0]);
if (!bh)
- bh = folio_create_empty_buffers(folio[0],
+ bh = create_empty_buffers(folio[0],
1 << orig_inode->i_blkbits, 0);
for (i = 0; i < data_offset_in_page; i++)
bh = bh->b_this_page;
if (folio_test_checked(folio)) {
folio_clear_checked(folio);
if (!folio_buffers(folio)) {
- folio_create_empty_buffers(folio,
+ create_empty_buffers(folio,
inode->i_sb->s_blocksize,
BIT(BH_Dirty)|BIT(BH_Uptodate));
}
struct buffer_head *bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio,
+ bh = create_empty_buffers(folio,
BIT(inode->i_blkbits), BIT(BH_Uptodate));
if (!buffer_mapped(bh))
mapping_gfp_mask(mapping) | __GFP_NOFAIL);
bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio,
+ bh = create_empty_buffers(folio,
sdp->sd_sb.sb_bsize, 0);
} else {
folio = __filemap_get_folio(mapping, index,
return PTR_ERR(folio);
bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio, bsize, 0);
+ bh = create_empty_buffers(folio, bsize, 0);
for (;;) {
/* Find the beginning block within the folio */
folio_mark_uptodate(folio);
return;
}
- head = folio_create_empty_buffers(folio, i_blocksize(inode), 0);
+ head = create_empty_buffers(folio, i_blocksize(inode), 0);
}
page_bh = head;
bh_frozen = folio_buffers(folio);
if (!bh_frozen)
- bh_frozen = folio_create_empty_buffers(folio, 1 << blkbits, 0);
+ bh_frozen = create_empty_buffers(folio, 1 << blkbits, 0);
bh_frozen = get_nth_bh(bh_frozen, bh_offset(bh) >> blkbits);
struct buffer_head *bh = folio_buffers(folio);
if (!bh)
- bh = folio_create_empty_buffers(folio, 1 << blkbits, b_state);
+ bh = create_empty_buffers(folio, 1 << blkbits, b_state);
first_block = (unsigned long)index << (PAGE_SHIFT - blkbits);
bh = get_nth_bh(bh, block - first_block);
sbh = folio_buffers(src);
dbh = folio_buffers(dst);
if (!dbh)
- dbh = folio_create_empty_buffers(dst, sbh->b_size, 0);
+ dbh = create_empty_buffers(dst, sbh->b_size, 0);
if (copy_dirty)
mask |= BIT(BH_Dirty);
}
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio,
+ head = create_empty_buffers(folio,
i_blocksize(inode), 0);
folio_unlock(folio);
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, blocksize, 0);
+ head = create_empty_buffers(folio, blocksize, 0);
bh = head;
/*
head = folio_buffers(folio);
if (!head) {
BUG_ON(!folio_test_uptodate(folio));
- head = folio_create_empty_buffers(folio, blocksize,
+ head = create_empty_buffers(folio, blocksize,
(1 << BH_Uptodate) | (1 << BH_Dirty));
}
bh = head;
* create_empty_buffers() will create uptodate/dirty
* buffers if the folio is uptodate/dirty.
*/
- head = folio_create_empty_buffers(folio, blocksize, 0);
+ head = create_empty_buffers(folio, blocksize, 0);
bh = head;
do {
VCN cdelta;
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, blocksize, 0);
+ head = create_empty_buffers(folio, blocksize, 0);
bh = head;
bh_off = 0;
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, bsize, 0);
+ head = create_empty_buffers(folio, bsize, 0);
for (bh = head, block_start = 0; bh != head || !block_start;
bh = bh->b_this_page, block_start += bsize) {
*/
head = folio_buffers(folio);
if (!head)
- head = folio_create_empty_buffers(folio, s->s_blocksize,
+ head = create_empty_buffers(folio, s->s_blocksize,
(1 << BH_Dirty) | (1 << BH_Uptodate));
/*
}
}
if (!folio_buffers(folio))
- folio_create_empty_buffers(folio, 1 << inode->i_blkbits, 0);
+ create_empty_buffers(folio, 1 << inode->i_blkbits, 0);
return folio;
}
gfp_t gfp);
struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size,
bool retry);
-void create_empty_buffers(struct page *, unsigned long,
- unsigned long b_state);
-struct buffer_head *folio_create_empty_buffers(struct folio *folio,
+struct buffer_head *create_empty_buffers(struct folio *folio,
unsigned long blocksize, unsigned long b_state);
void end_buffer_read_sync(struct buffer_head *bh, int uptodate);
void end_buffer_write_sync(struct buffer_head *bh, int uptodate);