Lines Matching +full:page +full:- +full:size
1 // SPDX-License-Identifier: GPL-2.0
20 struct super_block *sb, u64 fragment, u64 size) in _ubh_bread_() argument
25 if (size & ~uspi->s_fmask) in _ubh_bread_()
27 count = size >> uspi->s_fshift; in _ubh_bread_()
33 ubh->fragment = fragment; in _ubh_bread_()
34 ubh->count = count; in _ubh_bread_()
36 if (!(ubh->bh[i] = sb_bread(sb, fragment + i))) in _ubh_bread_()
39 ubh->bh[i] = NULL; in _ubh_bread_()
43 brelse (ubh->bh[j]); in _ubh_bread_()
49 struct super_block *sb, u64 fragment, u64 size) in ubh_bread_uspi() argument
53 if (size & ~uspi->s_fmask) in ubh_bread_uspi()
55 count = size >> uspi->s_fshift; in ubh_bread_uspi()
58 USPI_UBH(uspi)->fragment = fragment; in ubh_bread_uspi()
59 USPI_UBH(uspi)->count = count; in ubh_bread_uspi()
61 if (!(USPI_UBH(uspi)->bh[i] = sb_bread(sb, fragment + i))) in ubh_bread_uspi()
64 USPI_UBH(uspi)->bh[i] = NULL; in ubh_bread_uspi()
68 brelse (USPI_UBH(uspi)->bh[j]); in ubh_bread_uspi()
77 for (i = 0; i < ubh->count; i++) in ubh_brelse()
78 brelse (ubh->bh[i]); in ubh_brelse()
87 for ( i = 0; i < USPI_UBH(uspi)->count; i++ ) { in ubh_brelse_uspi()
88 brelse (USPI_UBH(uspi)->bh[i]); in ubh_brelse_uspi()
89 USPI_UBH(uspi)->bh[i] = NULL; in ubh_brelse_uspi()
98 for ( i = 0; i < ubh->count; i++ ) in ubh_mark_buffer_dirty()
99 mark_buffer_dirty (ubh->bh[i]); in ubh_mark_buffer_dirty()
108 for ( i = 0; i < ubh->count; i++ ) in ubh_mark_buffer_uptodate()
109 set_buffer_uptodate (ubh->bh[i]); in ubh_mark_buffer_uptodate()
111 for ( i = 0; i < ubh->count; i++ ) in ubh_mark_buffer_uptodate()
112 clear_buffer_uptodate (ubh->bh[i]); in ubh_mark_buffer_uptodate()
121 for (i = 0; i < ubh->count; i++) in ubh_sync_block()
122 write_dirty_buffer(ubh->bh[i], 0); in ubh_sync_block()
124 for (i = 0; i < ubh->count; i++) in ubh_sync_block()
125 wait_on_buffer(ubh->bh[i]); in ubh_sync_block()
134 for ( i = 0; i < ubh->count; i++ ) if ( ubh->bh[i] ) in ubh_bforget()
135 bforget (ubh->bh[i]); in ubh_bforget()
144 for ( i = 0; i < ubh->count; i++ ) in ubh_buffer_dirty()
145 result |= buffer_dirty(ubh->bh[i]); in ubh_buffer_dirty()
150 unsigned char * mem, struct ufs_buffer_head * ubh, unsigned size) in _ubh_ubhcpymem_() argument
153 if (size > (ubh->count << uspi->s_fshift)) in _ubh_ubhcpymem_()
154 size = ubh->count << uspi->s_fshift; in _ubh_ubhcpymem_()
156 while (size) { in _ubh_ubhcpymem_()
157 len = min_t(unsigned int, size, uspi->s_fsize); in _ubh_ubhcpymem_()
158 memcpy (mem, ubh->bh[bhno]->b_data, len); in _ubh_ubhcpymem_()
159 mem += uspi->s_fsize; in _ubh_ubhcpymem_()
160 size -= len; in _ubh_ubhcpymem_()
166 struct ufs_buffer_head * ubh, unsigned char * mem, unsigned size) in _ubh_memcpyubh_() argument
169 if (size > (ubh->count << uspi->s_fshift)) in _ubh_memcpyubh_()
170 size = ubh->count << uspi->s_fshift; in _ubh_memcpyubh_()
172 while (size) { in _ubh_memcpyubh_()
173 len = min_t(unsigned int, size, uspi->s_fsize); in _ubh_memcpyubh_()
174 memcpy (ubh->bh[bhno]->b_data, mem, len); in _ubh_memcpyubh_()
175 mem += uspi->s_fsize; in _ubh_memcpyubh_()
176 size -= len; in _ubh_memcpyubh_()
187 if ((UFS_SB(sb)->s_flags & UFS_ST_MASK) == UFS_ST_SUNx86) in ufs_get_inode_dev()
188 fs32 = fs32_to_cpu(sb, ufsi->i_u1.i_data[1]); in ufs_get_inode_dev()
190 fs32 = fs32_to_cpu(sb, ufsi->i_u1.i_data[0]); in ufs_get_inode_dev()
191 switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { in ufs_get_inode_dev()
213 switch (UFS_SB(sb)->s_flags & UFS_ST_MASK) { in ufs_set_inode_dev()
226 if ((UFS_SB(sb)->s_flags & UFS_ST_MASK) == UFS_ST_SUNx86) in ufs_set_inode_dev()
227 ufsi->i_u1.i_data[1] = cpu_to_fs32(sb, fs32); in ufs_set_inode_dev()
229 ufsi->i_u1.i_data[0] = cpu_to_fs32(sb, fs32); in ufs_set_inode_dev()
233 * ufs_get_locked_page() - locate, pin and lock a pagecache page, if not exist
236 * @index: the page index
238 * Locates the desired pagecache page, if not exist we'll read it,
244 struct page *ufs_get_locked_page(struct address_space *mapping, in ufs_get_locked_page()
247 struct inode *inode = mapping->host; in ufs_get_locked_page()
248 struct page *page = find_lock_page(mapping, index); in ufs_get_locked_page() local
249 if (!page) { in ufs_get_locked_page()
250 page = read_mapping_page(mapping, index, NULL); in ufs_get_locked_page()
252 if (IS_ERR(page)) { in ufs_get_locked_page()
255 mapping->host->i_ino, index); in ufs_get_locked_page()
256 return page; in ufs_get_locked_page()
259 lock_page(page); in ufs_get_locked_page()
261 if (unlikely(page->mapping == NULL)) { in ufs_get_locked_page()
263 unlock_page(page); in ufs_get_locked_page()
264 put_page(page); in ufs_get_locked_page()
268 if (!PageUptodate(page) || PageError(page)) { in ufs_get_locked_page()
269 unlock_page(page); in ufs_get_locked_page()
270 put_page(page); in ufs_get_locked_page()
273 "can not read page: ino %lu, index: %lu\n", in ufs_get_locked_page()
274 inode->i_ino, index); in ufs_get_locked_page()
276 return ERR_PTR(-EIO); in ufs_get_locked_page()
279 if (!page_has_buffers(page)) in ufs_get_locked_page()
280 create_empty_buffers(page, 1 << inode->i_blkbits, 0); in ufs_get_locked_page()
281 return page; in ufs_get_locked_page()