file.c (f847c699cff3f050286ee0a08632046468e7a511) file.c (4354994f097d068a894aa1a0860da54571df3582)
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>

--- 196 unchanged lines hidden (view full) ---

205 enum cp_reason_type cp_reason = 0;
206 struct writeback_control wbc = {
207 .sync_mode = WB_SYNC_ALL,
208 .nr_to_write = LONG_MAX,
209 .for_reclaim = 0,
210 };
211 unsigned int seq_id = 0;
212
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>

--- 196 unchanged lines hidden (view full) ---

205 enum cp_reason_type cp_reason = 0;
206 struct writeback_control wbc = {
207 .sync_mode = WB_SYNC_ALL,
208 .nr_to_write = LONG_MAX,
209 .for_reclaim = 0,
210 };
211 unsigned int seq_id = 0;
212
213 if (unlikely(f2fs_readonly(inode->i_sb)))
213 if (unlikely(f2fs_readonly(inode->i_sb) ||
214 is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
214 return 0;
215
216 trace_f2fs_sync_file_enter(inode);
217
218 /* if fdatasync is triggered, let's do in-place-update */
219 if (datasync || get_dirty_pages(inode) <= SM_I(sbi)->min_fsync_blocks)
220 set_inode_flag(inode, FI_NEED_IPU);
221 ret = file_write_and_wait_range(file, start, end);

--- 1930 unchanged lines hidden (view full) ---

2152 int ret;
2153
2154 if (!capable(CAP_SYS_ADMIN))
2155 return -EPERM;
2156
2157 if (f2fs_readonly(sbi->sb))
2158 return -EROFS;
2159
215 return 0;
216
217 trace_f2fs_sync_file_enter(inode);
218
219 /* if fdatasync is triggered, let's do in-place-update */
220 if (datasync || get_dirty_pages(inode) <= SM_I(sbi)->min_fsync_blocks)
221 set_inode_flag(inode, FI_NEED_IPU);
222 ret = file_write_and_wait_range(file, start, end);

--- 1930 unchanged lines hidden (view full) ---

2153 int ret;
2154
2155 if (!capable(CAP_SYS_ADMIN))
2156 return -EPERM;
2157
2158 if (f2fs_readonly(sbi->sb))
2159 return -EROFS;
2160
2161 if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED))) {
2162 f2fs_msg(sbi->sb, KERN_INFO,
2163 "Skipping Checkpoint. Checkpoints currently disabled.");
2164 return -EINVAL;
2165 }
2166
2160 ret = mnt_want_write_file(filp);
2161 if (ret)
2162 return ret;
2163
2164 ret = f2fs_sync_fs(sbi->sb, 1);
2165
2166 mnt_drop_write_file(filp);
2167 return ret;

--- 355 unchanged lines hidden (view full) ---

2523 int ret;
2524
2525 if (!capable(CAP_SYS_ADMIN))
2526 return -EPERM;
2527
2528 if (f2fs_readonly(sbi->sb))
2529 return -EROFS;
2530
2167 ret = mnt_want_write_file(filp);
2168 if (ret)
2169 return ret;
2170
2171 ret = f2fs_sync_fs(sbi->sb, 1);
2172
2173 mnt_drop_write_file(filp);
2174 return ret;

--- 355 unchanged lines hidden (view full) ---

2530 int ret;
2531
2532 if (!capable(CAP_SYS_ADMIN))
2533 return -EPERM;
2534
2535 if (f2fs_readonly(sbi->sb))
2536 return -EROFS;
2537
2538 if (unlikely(is_sbi_flag_set(sbi, SBI_CP_DISABLED)))
2539 return -EINVAL;
2540
2531 if (copy_from_user(&range, (struct f2fs_flush_device __user *)arg,
2532 sizeof(range)))
2533 return -EFAULT;
2534
2535 if (sbi->s_ndevs <= 1 || sbi->s_ndevs - 1 <= range.dev_num ||
2536 sbi->segs_per_sec != 1) {
2537 f2fs_msg(sbi->sb, KERN_WARNING,
2538 "Can't flush %u in %d for segs_per_sec %u != 1\n",

--- 560 unchanged lines hidden ---
2541 if (copy_from_user(&range, (struct f2fs_flush_device __user *)arg,
2542 sizeof(range)))
2543 return -EFAULT;
2544
2545 if (sbi->s_ndevs <= 1 || sbi->s_ndevs - 1 <= range.dev_num ||
2546 sbi->segs_per_sec != 1) {
2547 f2fs_msg(sbi->sb, KERN_WARNING,
2548 "Can't flush %u in %d for segs_per_sec %u != 1\n",

--- 560 unchanged lines hidden ---