xattr.c (1d1df41c5a33359a00e919d54eaebfb789711fdc) xattr.c (e4544b63a7ee49e7fbebf35ece0a6acd3b9617ae)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/xattr.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 *
8 * Portions of this code from linux/fs/ext2/xattr.c

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

520
521 if (name == NULL)
522 return -EINVAL;
523
524 len = strlen(name);
525 if (len > F2FS_NAME_LEN)
526 return -ERANGE;
527
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * fs/f2fs/xattr.c
4 *
5 * Copyright (c) 2012 Samsung Electronics Co., Ltd.
6 * http://www.samsung.com/
7 *
8 * Portions of this code from linux/fs/ext2/xattr.c

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

520
521 if (name == NULL)
522 return -EINVAL;
523
524 len = strlen(name);
525 if (len > F2FS_NAME_LEN)
526 return -ERANGE;
527
528 down_read(&F2FS_I(inode)->i_xattr_sem);
528 f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);
529 error = lookup_all_xattrs(inode, ipage, index, len, name,
530 &entry, &base_addr, &base_size, &is_inline);
529 error = lookup_all_xattrs(inode, ipage, index, len, name,
530 &entry, &base_addr, &base_size, &is_inline);
531 up_read(&F2FS_I(inode)->i_xattr_sem);
531 f2fs_up_read(&F2FS_I(inode)->i_xattr_sem);
532 if (error)
533 return error;
534
535 size = le16_to_cpu(entry->e_value_size);
536
537 if (buffer && size > buffer_size) {
538 error = -ERANGE;
539 goto out;

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

557ssize_t f2fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
558{
559 struct inode *inode = d_inode(dentry);
560 struct f2fs_xattr_entry *entry;
561 void *base_addr, *last_base_addr;
562 int error;
563 size_t rest = buffer_size;
564
532 if (error)
533 return error;
534
535 size = le16_to_cpu(entry->e_value_size);
536
537 if (buffer && size > buffer_size) {
538 error = -ERANGE;
539 goto out;

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

557ssize_t f2fs_listxattr(struct dentry *dentry, char *buffer, size_t buffer_size)
558{
559 struct inode *inode = d_inode(dentry);
560 struct f2fs_xattr_entry *entry;
561 void *base_addr, *last_base_addr;
562 int error;
563 size_t rest = buffer_size;
564
565 down_read(&F2FS_I(inode)->i_xattr_sem);
565 f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);
566 error = read_all_xattrs(inode, NULL, &base_addr);
566 error = read_all_xattrs(inode, NULL, &base_addr);
567 up_read(&F2FS_I(inode)->i_xattr_sem);
567 f2fs_up_read(&F2FS_I(inode)->i_xattr_sem);
568 if (error)
569 return error;
570
571 last_base_addr = (void *)base_addr + XATTR_SIZE(inode);
572
573 list_for_each_xattr(entry, base_addr) {
574 const struct xattr_handler *handler =
575 f2fs_xattr_handler(entry->e_name_index);

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

781
782 /* this case is only from f2fs_init_inode_metadata */
783 if (ipage)
784 return __f2fs_setxattr(inode, index, name, value,
785 size, ipage, flags);
786 f2fs_balance_fs(sbi, true);
787
788 f2fs_lock_op(sbi);
568 if (error)
569 return error;
570
571 last_base_addr = (void *)base_addr + XATTR_SIZE(inode);
572
573 list_for_each_xattr(entry, base_addr) {
574 const struct xattr_handler *handler =
575 f2fs_xattr_handler(entry->e_name_index);

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

781
782 /* this case is only from f2fs_init_inode_metadata */
783 if (ipage)
784 return __f2fs_setxattr(inode, index, name, value,
785 size, ipage, flags);
786 f2fs_balance_fs(sbi, true);
787
788 f2fs_lock_op(sbi);
789 down_write(&F2FS_I(inode)->i_xattr_sem);
789 f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);
790 err = __f2fs_setxattr(inode, index, name, value, size, ipage, flags);
790 err = __f2fs_setxattr(inode, index, name, value, size, ipage, flags);
791 up_write(&F2FS_I(inode)->i_xattr_sem);
791 f2fs_up_write(&F2FS_I(inode)->i_xattr_sem);
792 f2fs_unlock_op(sbi);
793
794 f2fs_update_time(sbi, REQ_TIME);
795 return err;
796}
797
798int f2fs_init_xattr_caches(struct f2fs_sb_info *sbi)
799{

--- 20 unchanged lines hidden ---
792 f2fs_unlock_op(sbi);
793
794 f2fs_update_time(sbi, REQ_TIME);
795 return err;
796}
797
798int f2fs_init_xattr_caches(struct f2fs_sb_info *sbi)
799{

--- 20 unchanged lines hidden ---