file.c (04f0b2eaa3b3ee243df6040617b4bfbbc0404854) | file.c (dcbb4c10e6d9693cc9d6fa493b4d130b66a60c7d) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/file.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 1823 unchanged lines hidden (view full) --- 1832 1833 down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]); 1834 1835 /* 1836 * Should wait end_io to count F2FS_WB_CP_DATA correctly by 1837 * f2fs_is_atomic_file. 1838 */ 1839 if (get_dirty_pages(inode)) | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * fs/f2fs/file.c 4 * 5 * Copyright (c) 2012 Samsung Electronics Co., Ltd. 6 * http://www.samsung.com/ 7 */ 8#include <linux/fs.h> --- 1823 unchanged lines hidden (view full) --- 1832 1833 down_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]); 1834 1835 /* 1836 * Should wait end_io to count F2FS_WB_CP_DATA correctly by 1837 * f2fs_is_atomic_file. 1838 */ 1839 if (get_dirty_pages(inode)) |
1840 f2fs_msg(F2FS_I_SB(inode)->sb, KERN_WARNING, 1841 "Unexpected flush for atomic writes: ino=%lu, npages=%u", 1842 inode->i_ino, get_dirty_pages(inode)); | 1840 f2fs_warn(F2FS_I_SB(inode), "Unexpected flush for atomic writes: ino=%lu, npages=%u", 1841 inode->i_ino, get_dirty_pages(inode)); |
1843 ret = filemap_write_and_wait_range(inode->i_mapping, 0, LLONG_MAX); 1844 if (ret) { 1845 up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]); 1846 goto out; 1847 } 1848 1849 set_inode_flag(inode, FI_ATOMIC_FILE); 1850 clear_inode_flag(inode, FI_ATOMIC_REVOKE_REQUEST); --- 418 unchanged lines hidden (view full) --- 2269 2270 if (!capable(CAP_SYS_ADMIN)) 2271 return -EPERM; 2272 2273 if (f2fs_readonly(sbi->sb)) 2274 return -EROFS; 2275 2276 if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) { | 1842 ret = filemap_write_and_wait_range(inode->i_mapping, 0, LLONG_MAX); 1843 if (ret) { 1844 up_write(&F2FS_I(inode)->i_gc_rwsem[WRITE]); 1845 goto out; 1846 } 1847 1848 set_inode_flag(inode, FI_ATOMIC_FILE); 1849 clear_inode_flag(inode, FI_ATOMIC_REVOKE_REQUEST); --- 418 unchanged lines hidden (view full) --- 2268 2269 if (!capable(CAP_SYS_ADMIN)) 2270 return -EPERM; 2271 2272 if (f2fs_readonly(sbi->sb)) 2273 return -EROFS; 2274 2275 if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) { |
2277 f2fs_msg(sbi->sb, KERN_INFO, 2278 "Skipping Checkpoint. Checkpoints currently disabled."); | 2276 f2fs_info(sbi, "Skipping Checkpoint. Checkpoints currently disabled."); |
2279 return -EINVAL; 2280 } 2281 2282 ret = mnt_want_write_file(filp); 2283 if (ret) 2284 return ret; 2285 2286 ret = f2fs_sync_fs(sbi->sb, 1); --- 368 unchanged lines hidden (view full) --- 2655 return -EINVAL; 2656 2657 if (copy_from_user(&range, (struct f2fs_flush_device __user *)arg, 2658 sizeof(range))) 2659 return -EFAULT; 2660 2661 if (!f2fs_is_multi_device(sbi) || sbi->s_ndevs - 1 <= range.dev_num || 2662 __is_large_section(sbi)) { | 2277 return -EINVAL; 2278 } 2279 2280 ret = mnt_want_write_file(filp); 2281 if (ret) 2282 return ret; 2283 2284 ret = f2fs_sync_fs(sbi->sb, 1); --- 368 unchanged lines hidden (view full) --- 2653 return -EINVAL; 2654 2655 if (copy_from_user(&range, (struct f2fs_flush_device __user *)arg, 2656 sizeof(range))) 2657 return -EFAULT; 2658 2659 if (!f2fs_is_multi_device(sbi) || sbi->s_ndevs - 1 <= range.dev_num || 2660 __is_large_section(sbi)) { |
2663 f2fs_msg(sbi->sb, KERN_WARNING, 2664 "Can't flush %u in %d for segs_per_sec %u != 1", 2665 range.dev_num, sbi->s_ndevs, 2666 sbi->segs_per_sec); | 2661 f2fs_warn(sbi, "Can't flush %u in %d for segs_per_sec %u != 1", 2662 range.dev_num, sbi->s_ndevs, sbi->segs_per_sec); |
2667 return -EINVAL; 2668 } 2669 2670 ret = mnt_want_write_file(filp); 2671 if (ret) 2672 return ret; 2673 2674 if (range.dev_num != 0) --- 268 unchanged lines hidden (view full) --- 2943 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); 2944 2945 /* Use i_gc_failures for normal file as a risk signal. */ 2946 if (inc) 2947 f2fs_i_gc_failures_write(inode, 2948 fi->i_gc_failures[GC_FAILURE_PIN] + 1); 2949 2950 if (fi->i_gc_failures[GC_FAILURE_PIN] > sbi->gc_pin_file_threshold) { | 2663 return -EINVAL; 2664 } 2665 2666 ret = mnt_want_write_file(filp); 2667 if (ret) 2668 return ret; 2669 2670 if (range.dev_num != 0) --- 268 unchanged lines hidden (view full) --- 2939 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); 2940 2941 /* Use i_gc_failures for normal file as a risk signal. */ 2942 if (inc) 2943 f2fs_i_gc_failures_write(inode, 2944 fi->i_gc_failures[GC_FAILURE_PIN] + 1); 2945 2946 if (fi->i_gc_failures[GC_FAILURE_PIN] > sbi->gc_pin_file_threshold) { |
2951 f2fs_msg(sbi->sb, KERN_WARNING, 2952 "%s: Enable GC = ino %lx after %x GC trials", 2953 __func__, inode->i_ino, 2954 fi->i_gc_failures[GC_FAILURE_PIN]); | 2947 f2fs_warn(sbi, "%s: Enable GC = ino %lx after %x GC trials", 2948 __func__, inode->i_ino, 2949 fi->i_gc_failures[GC_FAILURE_PIN]); |
2955 clear_inode_flag(inode, FI_PIN_FILE); 2956 return -EAGAIN; 2957 } 2958 return 0; 2959} 2960 2961static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg) 2962{ --- 317 unchanged lines hidden --- | 2950 clear_inode_flag(inode, FI_PIN_FILE); 2951 return -EAGAIN; 2952 } 2953 return 0; 2954} 2955 2956static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg) 2957{ --- 317 unchanged lines hidden --- |