dir.c (c74a7469f97c0f40b46e82ee979f9fb1bb6e847c) dir.c (f168d9fd634a4612d308d7dbe0a4d2a9b366c045)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/fs/hfsplus/dir.c
4 *
5 * Copyright (C) 2001
6 * Brad Boyer (flar@allandria.com)
7 * (C) 2003 Ardis Technologies <roman@ardistech.com>
8 *

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

13#include <linux/fs.h>
14#include <linux/slab.h>
15#include <linux/random.h>
16#include <linux/nls.h>
17
18#include "hfsplus_fs.h"
19#include "hfsplus_raw.h"
20#include "xattr.h"
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * linux/fs/hfsplus/dir.c
4 *
5 * Copyright (C) 2001
6 * Brad Boyer (flar@allandria.com)
7 * (C) 2003 Ardis Technologies <roman@ardistech.com>
8 *

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

13#include <linux/fs.h>
14#include <linux/slab.h>
15#include <linux/random.h>
16#include <linux/nls.h>
17
18#include "hfsplus_fs.h"
19#include "hfsplus_raw.h"
20#include "xattr.h"
21#include "acl.h"
22
23static inline void hfsplus_instantiate(struct dentry *dentry,
24 struct inode *inode, u32 cnid)
25{
26 dentry->d_fsdata = (void *)(unsigned long)cnid;
27 d_instantiate(dentry, inode);
28}
29

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

450 res = page_symlink(inode, symname, strlen(symname) + 1);
451 if (res)
452 goto out_err;
453
454 res = hfsplus_create_cat(inode->i_ino, dir, &dentry->d_name, inode);
455 if (res)
456 goto out_err;
457
21
22static inline void hfsplus_instantiate(struct dentry *dentry,
23 struct inode *inode, u32 cnid)
24{
25 dentry->d_fsdata = (void *)(unsigned long)cnid;
26 d_instantiate(dentry, inode);
27}
28

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

449 res = page_symlink(inode, symname, strlen(symname) + 1);
450 if (res)
451 goto out_err;
452
453 res = hfsplus_create_cat(inode->i_ino, dir, &dentry->d_name, inode);
454 if (res)
455 goto out_err;
456
458 res = hfsplus_init_inode_security(inode, dir, &dentry->d_name);
457 res = hfsplus_init_security(inode, dir, &dentry->d_name);
459 if (res == -EOPNOTSUPP)
460 res = 0; /* Operation is not supported. */
461 else if (res) {
462 /* Try to delete anyway without error analysis. */
463 hfsplus_delete_cat(inode->i_ino, dir, &dentry->d_name);
464 goto out_err;
465 }
466

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

491
492 if (S_ISBLK(mode) || S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode))
493 init_special_inode(inode, mode, rdev);
494
495 res = hfsplus_create_cat(inode->i_ino, dir, &dentry->d_name, inode);
496 if (res)
497 goto failed_mknod;
498
458 if (res == -EOPNOTSUPP)
459 res = 0; /* Operation is not supported. */
460 else if (res) {
461 /* Try to delete anyway without error analysis. */
462 hfsplus_delete_cat(inode->i_ino, dir, &dentry->d_name);
463 goto out_err;
464 }
465

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

490
491 if (S_ISBLK(mode) || S_ISCHR(mode) || S_ISFIFO(mode) || S_ISSOCK(mode))
492 init_special_inode(inode, mode, rdev);
493
494 res = hfsplus_create_cat(inode->i_ino, dir, &dentry->d_name, inode);
495 if (res)
496 goto failed_mknod;
497
499 res = hfsplus_init_inode_security(inode, dir, &dentry->d_name);
498 res = hfsplus_init_security(inode, dir, &dentry->d_name);
500 if (res == -EOPNOTSUPP)
501 res = 0; /* Operation is not supported. */
502 else if (res) {
503 /* Try to delete anyway without error analysis. */
504 hfsplus_delete_cat(inode->i_ino, dir, &dentry->d_name);
505 goto failed_mknod;
506 }
507

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

562 .link = hfsplus_link,
563 .unlink = hfsplus_unlink,
564 .mkdir = hfsplus_mkdir,
565 .rmdir = hfsplus_rmdir,
566 .symlink = hfsplus_symlink,
567 .mknod = hfsplus_mknod,
568 .rename = hfsplus_rename,
569 .listxattr = hfsplus_listxattr,
499 if (res == -EOPNOTSUPP)
500 res = 0; /* Operation is not supported. */
501 else if (res) {
502 /* Try to delete anyway without error analysis. */
503 hfsplus_delete_cat(inode->i_ino, dir, &dentry->d_name);
504 goto failed_mknod;
505 }
506

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

561 .link = hfsplus_link,
562 .unlink = hfsplus_unlink,
563 .mkdir = hfsplus_mkdir,
564 .rmdir = hfsplus_rmdir,
565 .symlink = hfsplus_symlink,
566 .mknod = hfsplus_mknod,
567 .rename = hfsplus_rename,
568 .listxattr = hfsplus_listxattr,
570#ifdef CONFIG_HFSPLUS_FS_POSIX_ACL
571 .get_acl = hfsplus_get_posix_acl,
572 .set_acl = hfsplus_set_posix_acl,
573#endif
574};
575
576const struct file_operations hfsplus_dir_operations = {
577 .fsync = hfsplus_file_fsync,
578 .read = generic_read_dir,
579 .iterate_shared = hfsplus_readdir,
580 .unlocked_ioctl = hfsplus_ioctl,
581 .llseek = generic_file_llseek,
582 .release = hfsplus_dir_release,
583};
569};
570
571const struct file_operations hfsplus_dir_operations = {
572 .fsync = hfsplus_file_fsync,
573 .read = generic_read_dir,
574 .iterate_shared = hfsplus_readdir,
575 .unlocked_ioctl = hfsplus_ioctl,
576 .llseek = generic_file_llseek,
577 .release = hfsplus_dir_release,
578};