data.c (915039967342758ea1c26d99dd5ca2bef51ee382) | data.c (4f5e34f713185cb562a796567556bff7d9c7418d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/data.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 3534 unchanged lines hidden (view full) --- 3543 3544 clear_page_private_gcing(page); 3545 3546 detach_page_private(page); 3547 set_page_private(page, 0); 3548 return 1; 3549} 3550 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/data.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 3534 unchanged lines hidden (view full) --- 3543 3544 clear_page_private_gcing(page); 3545 3546 detach_page_private(page); 3547 set_page_private(page, 0); 3548 return 1; 3549} 3550 |
3551static int f2fs_set_data_page_dirty(struct page *page) | 3551static bool f2fs_dirty_data_folio(struct address_space *mapping, 3552 struct folio *folio) |
3552{ | 3553{ |
3553 struct inode *inode = page_file_mapping(page)->host; | 3554 struct inode *inode = mapping->host; |
3554 | 3555 |
3555 trace_f2fs_set_page_dirty(page, DATA); | 3556 trace_f2fs_set_page_dirty(&folio->page, DATA); |
3556 | 3557 |
3557 if (!PageUptodate(page)) 3558 SetPageUptodate(page); 3559 if (PageSwapCache(page)) 3560 return __set_page_dirty_nobuffers(page); | 3558 if (!folio_test_uptodate(folio)) 3559 folio_mark_uptodate(folio); 3560 BUG_ON(folio_test_swapcache(folio)); |
3561 3562 if (f2fs_is_atomic_file(inode) && !f2fs_is_commit_atomic_write(inode)) { | 3561 3562 if (f2fs_is_atomic_file(inode) && !f2fs_is_commit_atomic_write(inode)) { |
3563 if (!page_private_atomic(page)) { 3564 f2fs_register_inmem_page(inode, page); 3565 return 1; | 3563 if (!page_private_atomic(&folio->page)) { 3564 f2fs_register_inmem_page(inode, &folio->page); 3565 return true; |
3566 } 3567 /* 3568 * Previously, this page has been registered, we just 3569 * return here. 3570 */ | 3566 } 3567 /* 3568 * Previously, this page has been registered, we just 3569 * return here. 3570 */ |
3571 return 0; | 3571 return false; |
3572 } 3573 | 3572 } 3573 |
3574 if (!PageDirty(page)) { 3575 __set_page_dirty_nobuffers(page); 3576 f2fs_update_dirty_page(inode, page); 3577 return 1; | 3574 if (!folio_test_dirty(folio)) { 3575 filemap_dirty_folio(mapping, folio); 3576 f2fs_update_dirty_folio(inode, folio); 3577 return true; |
3578 } | 3578 } |
3579 return 0; | 3579 return true; |
3580} 3581 3582 3583static sector_t f2fs_bmap_compress(struct inode *inode, sector_t block) 3584{ 3585#ifdef CONFIG_F2FS_FS_COMPRESSION 3586 struct dnode_of_data dn; 3587 sector_t start_idx, blknr = 0; --- 343 unchanged lines hidden (view full) --- 3931 3932const struct address_space_operations f2fs_dblock_aops = { 3933 .readpage = f2fs_read_data_page, 3934 .readahead = f2fs_readahead, 3935 .writepage = f2fs_write_data_page, 3936 .writepages = f2fs_write_data_pages, 3937 .write_begin = f2fs_write_begin, 3938 .write_end = f2fs_write_end, | 3580} 3581 3582 3583static sector_t f2fs_bmap_compress(struct inode *inode, sector_t block) 3584{ 3585#ifdef CONFIG_F2FS_FS_COMPRESSION 3586 struct dnode_of_data dn; 3587 sector_t start_idx, blknr = 0; --- 343 unchanged lines hidden (view full) --- 3931 3932const struct address_space_operations f2fs_dblock_aops = { 3933 .readpage = f2fs_read_data_page, 3934 .readahead = f2fs_readahead, 3935 .writepage = f2fs_write_data_page, 3936 .writepages = f2fs_write_data_pages, 3937 .write_begin = f2fs_write_begin, 3938 .write_end = f2fs_write_end, |
3939 .set_page_dirty = f2fs_set_data_page_dirty, | 3939 .dirty_folio = f2fs_dirty_data_folio, |
3940 .invalidate_folio = f2fs_invalidate_folio, 3941 .releasepage = f2fs_release_page, 3942 .direct_IO = noop_direct_IO, 3943 .bmap = f2fs_bmap, 3944 .swap_activate = f2fs_swap_activate, 3945 .swap_deactivate = f2fs_swap_deactivate, 3946#ifdef CONFIG_MIGRATION 3947 .migratepage = f2fs_migrate_page, --- 129 unchanged lines hidden --- | 3940 .invalidate_folio = f2fs_invalidate_folio, 3941 .releasepage = f2fs_release_page, 3942 .direct_IO = noop_direct_IO, 3943 .bmap = f2fs_bmap, 3944 .swap_activate = f2fs_swap_activate, 3945 .swap_deactivate = f2fs_swap_deactivate, 3946#ifdef CONFIG_MIGRATION 3947 .migratepage = f2fs_migrate_page, --- 129 unchanged lines hidden --- |