Lines Matching +full:page +full:- +full:size

1 /* SPDX-License-Identifier: GPL-2.0 */
46 struct page;
53 * within a page, and of course as the unit of I/O through the
57 * a page (via a page_mapping) and for wrapping bio submission
62 struct buffer_head *b_this_page;/* circular list of page's buffers */
63 struct page *b_page; /* the page this bh is mapped to */
66 size_t b_size; /* size of mapping */
67 char *b_data; /* pointer to data within the page */
76 spinlock_t b_uptodate_lock; /* Used by the first bh in a page, to
78 * buffers in the page */
90 if (!test_bit(BH_##bit, &(bh)->b_state)) \
91 set_bit(BH_##bit, &(bh)->b_state); \
95 clear_bit(BH_##bit, &(bh)->b_state); \
99 return test_bit(BH_##bit, &(bh)->b_state); \
108 return test_and_set_bit(BH_##bit, &(bh)->b_state); \
112 return test_and_clear_bit(BH_##bit, &(bh)->b_state); \
117 * of the form "mark_buffer_foo()". These are higher-level functions which
138 #define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK)
140 /* If we *know* page->private refers to buffer_heads */
141 #define page_buffers(page) \ argument
143 BUG_ON(!PagePrivate(page)); \
144 ((struct buffer_head *)page_private(page)); \
146 #define page_has_buffers(page) PagePrivate(page) argument
148 void buffer_check_dirty_writeback(struct page *page,
159 struct page *page, unsigned long offset);
160 int try_to_free_buffers(struct page *);
161 struct buffer_head *alloc_page_buffers(struct page *page, unsigned long size,
163 void create_empty_buffers(struct page *, unsigned long,
169 /* Things to do with buffers at mapping->private_list */
179 clean_bdev_aliases(bh->b_bdev, bh->b_blocknr, 1); in clean_bdev_bh_alias()
186 unsigned size);
188 unsigned size, gfp_t gfp);
191 void __breadahead(struct block_device *, sector_t block, unsigned int size);
192 void __breadahead_gfp(struct block_device *, sector_t block, unsigned int size,
195 sector_t block, unsigned size, gfp_t gfp);
214 * Generic address_space_operations implementations for buffer_head-backed
217 void block_invalidatepage(struct page *page, unsigned int offset,
219 int block_write_full_page(struct page *page, get_block_t *get_block,
221 int __block_write_full_page(struct inode *inode, struct page *page,
224 int block_read_full_page(struct page*, get_block_t*);
225 int block_is_partially_uptodate(struct page *page, unsigned long from,
228 unsigned flags, struct page **pagep, get_block_t *get_block);
229 int __block_write_begin(struct page *page, loff_t pos, unsigned len,
233 struct page *, void *);
236 struct page *, void *);
237 void page_zero_new_buffers(struct page *page, unsigned from, unsigned to);
238 void clean_page_buffers(struct page *page);
240 unsigned, unsigned, struct page **, void **,
242 int generic_cont_expand_simple(struct inode *inode, loff_t size);
243 int block_commit_write(struct page *page, unsigned from, unsigned to);
246 /* Convert errno to return value from ->page_mkwrite() call */
251 if (err == -EFAULT || err == -EAGAIN) in block_page_mkwrite_return()
253 if (err == -ENOMEM) in block_page_mkwrite_return()
255 /* -ENOSPC, -EDQUOT, -EIO ... */ in block_page_mkwrite_return()
261 struct page **, void **, get_block_t*);
264 struct page *, void *);
266 int nobh_writepage(struct page *page, get_block_t *get_block,
277 atomic_inc(&bh->b_count); in get_bh()
283 atomic_dec(&bh->b_count); in put_bh()
301 return __bread_gfp(sb->s_bdev, block, sb->s_blocksize, __GFP_MOVABLE); in sb_bread()
307 return __bread_gfp(sb->s_bdev, block, sb->s_blocksize, 0); in sb_bread_unmovable()
313 __breadahead(sb->s_bdev, block, sb->s_blocksize); in sb_breadahead()
319 __breadahead_gfp(sb->s_bdev, block, sb->s_blocksize, 0); in sb_breadahead_unmovable()
325 return __getblk_gfp(sb->s_bdev, block, sb->s_blocksize, __GFP_MOVABLE); in sb_getblk()
332 return __getblk_gfp(sb->s_bdev, block, sb->s_blocksize, gfp); in sb_getblk_gfp()
338 return __find_get_block(sb->s_bdev, block, sb->s_blocksize); in sb_find_get_block()
345 bh->b_bdev = sb->s_bdev; in map_bh()
346 bh->b_blocknr = block; in map_bh()
347 bh->b_size = sb->s_blocksize; in map_bh()
359 return likely(!test_and_set_bit_lock(BH_Lock, &bh->b_state)); in trylock_buffer()
371 unsigned size) in getblk_unmovable() argument
373 return __getblk_gfp(bdev, block, size, 0); in getblk_unmovable()
378 unsigned size) in __getblk() argument
380 return __getblk_gfp(bdev, block, size, __GFP_MOVABLE); in __getblk()
384 * __bread() - reads a specified block and returns the bh
387 * @size: size (in bytes) to read
390 * The page cache is allocated from movable area so that it can be migrated.
394 __bread(struct block_device *bdev, sector_t block, unsigned size) in __bread() argument
396 return __bread_gfp(bdev, block, size, __GFP_MOVABLE); in __bread()
399 extern int __set_page_dirty_buffers(struct page *page);
404 static inline int try_to_free_buffers(struct page *page) { return 1; } in try_to_free_buffers() argument