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 ---