namei.c (d83d0f5ba8532e649146ac32ae47167a28d98c84) namei.c (4354994f097d068a894aa1a0860da54571df3582)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/namei.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>
9#include <linux/f2fs_fs.h>
10#include <linux/pagemap.h>
11#include <linux/sched.h>
12#include <linux/ctype.h>
13#include <linux/dcache.h>
14#include <linux/namei.h>
15#include <linux/quotaops.h>
16
17#include "f2fs.h"
18#include "node.h"
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/namei.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 */
8#include <linux/fs.h>
9#include <linux/f2fs_fs.h>
10#include <linux/pagemap.h>
11#include <linux/sched.h>
12#include <linux/ctype.h>
13#include <linux/dcache.h>
14#include <linux/namei.h>
15#include <linux/quotaops.h>
16
17#include "f2fs.h"
18#include "node.h"
19#include "segment.h"
19#include "xattr.h"
20#include "acl.h"
21#include <trace/events/f2fs.h>
22
23static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode)
24{
25 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
26 nid_t ino;

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

264{
265 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
266 struct inode *inode;
267 nid_t ino = 0;
268 int err;
269
270 if (unlikely(f2fs_cp_error(sbi)))
271 return -EIO;
20#include "xattr.h"
21#include "acl.h"
22#include <trace/events/f2fs.h>
23
24static struct inode *f2fs_new_inode(struct inode *dir, umode_t mode)
25{
26 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
27 nid_t ino;

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

265{
266 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
267 struct inode *inode;
268 nid_t ino = 0;
269 int err;
270
271 if (unlikely(f2fs_cp_error(sbi)))
272 return -EIO;
273 err = f2fs_is_checkpoint_ready(sbi);
274 if (err)
275 return err;
272
273 err = dquot_initialize(dir);
274 if (err)
275 return err;
276
277 inode = f2fs_new_inode(dir, mode);
278 if (IS_ERR(inode))
279 return PTR_ERR(inode);

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

310 struct dentry *dentry)
311{
312 struct inode *inode = d_inode(old_dentry);
313 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
314 int err;
315
316 if (unlikely(f2fs_cp_error(sbi)))
317 return -EIO;
276
277 err = dquot_initialize(dir);
278 if (err)
279 return err;
280
281 inode = f2fs_new_inode(dir, mode);
282 if (IS_ERR(inode))
283 return PTR_ERR(inode);

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

314 struct dentry *dentry)
315{
316 struct inode *inode = d_inode(old_dentry);
317 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
318 int err;
319
320 if (unlikely(f2fs_cp_error(sbi)))
321 return -EIO;
322 err = f2fs_is_checkpoint_ready(sbi);
323 if (err)
324 return err;
318
319 err = fscrypt_prepare_link(old_dentry, dir, dentry);
320 if (err)
321 return err;
322
323 if (is_inode_flag_set(dir, FI_PROJ_INHERIT) &&
324 (!projid_eq(F2FS_I(dir)->i_projid,
325 F2FS_I(old_dentry->d_inode)->i_projid)))

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

556 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
557 struct inode *inode;
558 size_t len = strlen(symname);
559 struct fscrypt_str disk_link;
560 int err;
561
562 if (unlikely(f2fs_cp_error(sbi)))
563 return -EIO;
325
326 err = fscrypt_prepare_link(old_dentry, dir, dentry);
327 if (err)
328 return err;
329
330 if (is_inode_flag_set(dir, FI_PROJ_INHERIT) &&
331 (!projid_eq(F2FS_I(dir)->i_projid,
332 F2FS_I(old_dentry->d_inode)->i_projid)))

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

563 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
564 struct inode *inode;
565 size_t len = strlen(symname);
566 struct fscrypt_str disk_link;
567 int err;
568
569 if (unlikely(f2fs_cp_error(sbi)))
570 return -EIO;
571 err = f2fs_is_checkpoint_ready(sbi);
572 if (err)
573 return err;
564
565 err = fscrypt_prepare_symlink(dir, symname, len, dir->i_sb->s_blocksize,
566 &disk_link);
567 if (err)
568 return err;
569
570 err = dquot_initialize(dir);
571 if (err)

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

685 umode_t mode, dev_t rdev)
686{
687 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
688 struct inode *inode;
689 int err = 0;
690
691 if (unlikely(f2fs_cp_error(sbi)))
692 return -EIO;
574
575 err = fscrypt_prepare_symlink(dir, symname, len, dir->i_sb->s_blocksize,
576 &disk_link);
577 if (err)
578 return err;
579
580 err = dquot_initialize(dir);
581 if (err)

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

695 umode_t mode, dev_t rdev)
696{
697 struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
698 struct inode *inode;
699 int err = 0;
700
701 if (unlikely(f2fs_cp_error(sbi)))
702 return -EIO;
703 err = f2fs_is_checkpoint_ready(sbi);
704 if (err)
705 return err;
693
694 err = dquot_initialize(dir);
695 if (err)
696 return err;
697
698 inode = f2fs_new_inode(dir, mode);
699 if (IS_ERR(inode))
700 return PTR_ERR(inode);

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

819 struct f2fs_dir_entry *old_dir_entry = NULL;
820 struct f2fs_dir_entry *old_entry;
821 struct f2fs_dir_entry *new_entry;
822 bool is_old_inline = f2fs_has_inline_dentry(old_dir);
823 int err;
824
825 if (unlikely(f2fs_cp_error(sbi)))
826 return -EIO;
706
707 err = dquot_initialize(dir);
708 if (err)
709 return err;
710
711 inode = f2fs_new_inode(dir, mode);
712 if (IS_ERR(inode))
713 return PTR_ERR(inode);

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

832 struct f2fs_dir_entry *old_dir_entry = NULL;
833 struct f2fs_dir_entry *old_entry;
834 struct f2fs_dir_entry *new_entry;
835 bool is_old_inline = f2fs_has_inline_dentry(old_dir);
836 int err;
837
838 if (unlikely(f2fs_cp_error(sbi)))
839 return -EIO;
840 err = f2fs_is_checkpoint_ready(sbi);
841 if (err)
842 return err;
827
828 if (is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
829 (!projid_eq(F2FS_I(new_dir)->i_projid,
830 F2FS_I(old_dentry->d_inode)->i_projid)))
831 return -EXDEV;
832
833 err = dquot_initialize(old_dir);
834 if (err)

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

1009 struct page *old_page, *new_page;
1010 struct f2fs_dir_entry *old_dir_entry = NULL, *new_dir_entry = NULL;
1011 struct f2fs_dir_entry *old_entry, *new_entry;
1012 int old_nlink = 0, new_nlink = 0;
1013 int err;
1014
1015 if (unlikely(f2fs_cp_error(sbi)))
1016 return -EIO;
843
844 if (is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
845 (!projid_eq(F2FS_I(new_dir)->i_projid,
846 F2FS_I(old_dentry->d_inode)->i_projid)))
847 return -EXDEV;
848
849 err = dquot_initialize(old_dir);
850 if (err)

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

1025 struct page *old_page, *new_page;
1026 struct f2fs_dir_entry *old_dir_entry = NULL, *new_dir_entry = NULL;
1027 struct f2fs_dir_entry *old_entry, *new_entry;
1028 int old_nlink = 0, new_nlink = 0;
1029 int err;
1030
1031 if (unlikely(f2fs_cp_error(sbi)))
1032 return -EIO;
1033 err = f2fs_is_checkpoint_ready(sbi);
1034 if (err)
1035 return err;
1017
1018 if ((is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
1019 !projid_eq(F2FS_I(new_dir)->i_projid,
1020 F2FS_I(old_dentry->d_inode)->i_projid)) ||
1021 (is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
1022 !projid_eq(F2FS_I(old_dir)->i_projid,
1023 F2FS_I(new_dentry->d_inode)->i_projid)))
1024 return -EXDEV;

--- 222 unchanged lines hidden ---
1036
1037 if ((is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
1038 !projid_eq(F2FS_I(new_dir)->i_projid,
1039 F2FS_I(old_dentry->d_inode)->i_projid)) ||
1040 (is_inode_flag_set(new_dir, FI_PROJ_INHERIT) &&
1041 !projid_eq(F2FS_I(old_dir)->i_projid,
1042 F2FS_I(new_dentry->d_inode)->i_projid)))
1043 return -EXDEV;

--- 222 unchanged lines hidden ---