move_extent.c (b7446e7cf15f0926866c8e5de90ab278998bf8c8) | move_extent.c (fe5ddf6b21c7b9b2c6e29ef6fd38d827ced55e6e) |
---|---|
1// SPDX-License-Identifier: LGPL-2.1 2/* 3 * Copyright (c) 2008,2009 NEC Software Tohoku, Ltd. 4 * Written by Takashi Sato <t-sato@yk.jp.nec.com> 5 * Akira Fujita <a-fujita@rs.jp.nec.com> 6 */ 7 8#include <linux/fs.h> --- 655 unchanged lines hidden (view full) --- 664 donor_inode->i_blkbits); 665 offset_in_page = o_start % blocks_per_page; 666 if (cur_len > blocks_per_page- offset_in_page) 667 cur_len = blocks_per_page - offset_in_page; 668 /* 669 * Up semaphore to avoid following problems: 670 * a. transaction deadlock among ext4_journal_start, 671 * ->write_begin via pagefault, and jbd2_journal_commit | 1// SPDX-License-Identifier: LGPL-2.1 2/* 3 * Copyright (c) 2008,2009 NEC Software Tohoku, Ltd. 4 * Written by Takashi Sato <t-sato@yk.jp.nec.com> 5 * Akira Fujita <a-fujita@rs.jp.nec.com> 6 */ 7 8#include <linux/fs.h> --- 655 unchanged lines hidden (view full) --- 664 donor_inode->i_blkbits); 665 offset_in_page = o_start % blocks_per_page; 666 if (cur_len > blocks_per_page- offset_in_page) 667 cur_len = blocks_per_page - offset_in_page; 668 /* 669 * Up semaphore to avoid following problems: 670 * a. transaction deadlock among ext4_journal_start, 671 * ->write_begin via pagefault, and jbd2_journal_commit |
672 * b. racing with ->readpage, ->write_begin, and ext4_get_block 673 * in move_extent_per_page | 672 * b. racing with ->read_folio, ->write_begin, and 673 * ext4_get_block in move_extent_per_page |
674 */ 675 ext4_double_up_write_data_sem(orig_inode, donor_inode); 676 /* Swap original branches with new branches */ 677 move_extent_per_page(o_filp, donor_inode, 678 orig_page_index, donor_page_index, 679 offset_in_page, cur_len, 680 unwritten, &ret); 681 ext4_double_down_write_data_sem(orig_inode, donor_inode); --- 22 unchanged lines hidden --- | 674 */ 675 ext4_double_up_write_data_sem(orig_inode, donor_inode); 676 /* Swap original branches with new branches */ 677 move_extent_per_page(o_filp, donor_inode, 678 orig_page_index, donor_page_index, 679 offset_in_page, cur_len, 680 unwritten, &ret); 681 ext4_double_down_write_data_sem(orig_inode, donor_inode); --- 22 unchanged lines hidden --- |