Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

udf: saner calling conventions for udf_new_inode()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jan Kara <jack@suse.cz>

authored by

Al Viro and committed by
Jan Kara
0b93a92b b2315096

+27 -43
+10 -14
fs/udf/ialloc.c
··· 45 45 udf_free_blocks(sb, NULL, &UDF_I(inode)->i_location, 0, 1); 46 46 } 47 47 48 - struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err) 48 + struct inode *udf_new_inode(struct inode *dir, umode_t mode) 49 49 { 50 50 struct super_block *sb = dir->i_sb; 51 51 struct udf_sb_info *sbi = UDF_SB(sb); ··· 55 55 struct udf_inode_info *iinfo; 56 56 struct udf_inode_info *dinfo = UDF_I(dir); 57 57 struct logicalVolIntegrityDescImpUse *lvidiu; 58 + int err; 58 59 59 60 inode = new_inode(sb); 60 61 61 - if (!inode) { 62 - *err = -ENOMEM; 63 - return NULL; 64 - } 65 - *err = -ENOSPC; 62 + if (!inode) 63 + return ERR_PTR(-ENOMEM); 66 64 67 65 iinfo = UDF_I(inode); 68 66 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) { ··· 78 80 } 79 81 if (!iinfo->i_ext.i_data) { 80 82 iput(inode); 81 - *err = -ENOMEM; 82 - return NULL; 83 + return ERR_PTR(-ENOMEM); 83 84 } 84 85 86 + err = -ENOSPC; 85 87 block = udf_new_block(dir->i_sb, NULL, 86 88 dinfo->i_location.partitionReferenceNum, 87 - start, err); 88 - if (*err) { 89 + start, &err); 90 + if (err) { 89 91 iput(inode); 90 - return NULL; 92 + return ERR_PTR(err); 91 93 } 92 94 93 95 lvidiu = udf_sb_lvidiu(sb); ··· 125 127 if (unlikely(insert_inode_locked(inode) < 0)) { 126 128 make_bad_inode(inode); 127 129 iput(inode); 128 - *err = -EIO; 129 - return NULL; 130 + return ERR_PTR(-EIO); 130 131 } 131 132 mark_inode_dirty(inode); 132 133 133 - *err = 0; 134 134 return inode; 135 135 }
+16 -28
fs/udf/namei.c
··· 582 582 static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode, 583 583 bool excl) 584 584 { 585 - struct inode *inode; 586 - int err; 585 + struct inode *inode = udf_new_inode(dir, mode); 587 586 588 - inode = udf_new_inode(dir, mode, &err); 589 - if (!inode) { 590 - return err; 591 - } 587 + if (IS_ERR(inode)) 588 + return PTR_ERR(inode); 592 589 593 590 if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) 594 591 inode->i_data.a_ops = &udf_adinicb_aops; ··· 600 603 601 604 static int udf_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode) 602 605 { 603 - struct inode *inode; 604 - struct udf_inode_info *iinfo; 605 - int err; 606 + struct inode *inode = udf_new_inode(dir, mode); 606 607 607 - inode = udf_new_inode(dir, mode, &err); 608 - if (!inode) 609 - return err; 608 + if (IS_ERR(inode)) 609 + return PTR_ERR(inode); 610 610 611 - iinfo = UDF_I(inode); 612 - if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) 611 + if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB) 613 612 inode->i_data.a_ops = &udf_adinicb_aops; 614 613 else 615 614 inode->i_data.a_ops = &udf_aops; 616 615 inode->i_op = &udf_file_inode_operations; 617 616 inode->i_fop = &udf_file_operations; 618 617 mark_inode_dirty(inode); 619 - 620 618 d_tmpfile(dentry, inode); 621 619 unlock_new_inode(inode); 622 620 return 0; ··· 621 629 dev_t rdev) 622 630 { 623 631 struct inode *inode; 624 - int err; 625 632 626 633 if (!old_valid_dev(rdev)) 627 634 return -EINVAL; 628 635 629 - err = -EIO; 630 - inode = udf_new_inode(dir, mode, &err); 631 - if (!inode) 632 - return err; 636 + inode = udf_new_inode(dir, mode); 637 + if (IS_ERR(inode)) 638 + return PTR_ERR(inode); 633 639 634 640 init_special_inode(inode, mode, rdev); 635 641 return udf_add_nondir(dentry, inode); ··· 642 652 struct udf_inode_info *dinfo = UDF_I(dir); 643 653 struct udf_inode_info *iinfo; 644 654 645 - err = -EIO; 646 - inode = udf_new_inode(dir, S_IFDIR | mode, &err); 647 - if (!inode) 648 - goto out; 655 + inode = udf_new_inode(dir, S_IFDIR | mode); 656 + if (IS_ERR(inode)) 657 + return PTR_ERR(inode); 649 658 650 659 iinfo = UDF_I(inode); 651 660 inode->i_op = &udf_dir_inode_operations; ··· 850 861 static int udf_symlink(struct inode *dir, struct dentry *dentry, 851 862 const char *symname) 852 863 { 853 - struct inode *inode; 864 + struct inode *inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO); 854 865 struct pathComponent *pc; 855 866 const char *compstart; 856 867 struct extent_position epos = {}; ··· 863 874 struct udf_inode_info *iinfo; 864 875 struct super_block *sb = dir->i_sb; 865 876 866 - inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO, &err); 867 - if (!inode) 868 - goto out; 877 + if (IS_ERR(inode)) 878 + return PTR_ERR(inode); 869 879 870 880 iinfo = UDF_I(inode); 871 881 down_write(&iinfo->i_data_sem);
+1 -1
fs/udf/udfdecl.h
··· 208 208 209 209 /* ialloc.c */ 210 210 extern void udf_free_inode(struct inode *); 211 - extern struct inode *udf_new_inode(struct inode *, umode_t, int *); 211 + extern struct inode *udf_new_inode(struct inode *, umode_t); 212 212 213 213 /* truncate.c */ 214 214 extern void udf_truncate_tail_extent(struct inode *);