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}; |