mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
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>
This commit is contained in:
parent
b231509616
commit
0b93a92be4
@ -45,7 +45,7 @@ void udf_free_inode(struct inode *inode)
|
||||
udf_free_blocks(sb, NULL, &UDF_I(inode)->i_location, 0, 1);
|
||||
}
|
||||
|
||||
struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err)
|
||||
struct inode *udf_new_inode(struct inode *dir, umode_t mode)
|
||||
{
|
||||
struct super_block *sb = dir->i_sb;
|
||||
struct udf_sb_info *sbi = UDF_SB(sb);
|
||||
@ -55,14 +55,12 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err)
|
||||
struct udf_inode_info *iinfo;
|
||||
struct udf_inode_info *dinfo = UDF_I(dir);
|
||||
struct logicalVolIntegrityDescImpUse *lvidiu;
|
||||
int err;
|
||||
|
||||
inode = new_inode(sb);
|
||||
|
||||
if (!inode) {
|
||||
*err = -ENOMEM;
|
||||
return NULL;
|
||||
}
|
||||
*err = -ENOSPC;
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
iinfo = UDF_I(inode);
|
||||
if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) {
|
||||
@ -80,16 +78,16 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err)
|
||||
}
|
||||
if (!iinfo->i_ext.i_data) {
|
||||
iput(inode);
|
||||
*err = -ENOMEM;
|
||||
return NULL;
|
||||
return ERR_PTR(-ENOMEM);
|
||||
}
|
||||
|
||||
err = -ENOSPC;
|
||||
block = udf_new_block(dir->i_sb, NULL,
|
||||
dinfo->i_location.partitionReferenceNum,
|
||||
start, err);
|
||||
if (*err) {
|
||||
start, &err);
|
||||
if (err) {
|
||||
iput(inode);
|
||||
return NULL;
|
||||
return ERR_PTR(err);
|
||||
}
|
||||
|
||||
lvidiu = udf_sb_lvidiu(sb);
|
||||
@ -127,11 +125,9 @@ struct inode *udf_new_inode(struct inode *dir, umode_t mode, int *err)
|
||||
if (unlikely(insert_inode_locked(inode) < 0)) {
|
||||
make_bad_inode(inode);
|
||||
iput(inode);
|
||||
*err = -EIO;
|
||||
return NULL;
|
||||
return ERR_PTR(-EIO);
|
||||
}
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
*err = 0;
|
||||
return inode;
|
||||
}
|
||||
|
@ -582,13 +582,10 @@ static int udf_add_nondir(struct dentry *dentry, struct inode *inode)
|
||||
static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
bool excl)
|
||||
{
|
||||
struct inode *inode;
|
||||
int err;
|
||||
struct inode *inode = udf_new_inode(dir, mode);
|
||||
|
||||
inode = udf_new_inode(dir, mode, &err);
|
||||
if (!inode) {
|
||||
return err;
|
||||
}
|
||||
if (IS_ERR(inode))
|
||||
return PTR_ERR(inode);
|
||||
|
||||
if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
|
||||
inode->i_data.a_ops = &udf_adinicb_aops;
|
||||
@ -603,23 +600,18 @@ static int udf_create(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
|
||||
static int udf_tmpfile(struct inode *dir, struct dentry *dentry, umode_t mode)
|
||||
{
|
||||
struct inode *inode;
|
||||
struct udf_inode_info *iinfo;
|
||||
int err;
|
||||
struct inode *inode = udf_new_inode(dir, mode);
|
||||
|
||||
inode = udf_new_inode(dir, mode, &err);
|
||||
if (!inode)
|
||||
return err;
|
||||
if (IS_ERR(inode))
|
||||
return PTR_ERR(inode);
|
||||
|
||||
iinfo = UDF_I(inode);
|
||||
if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
|
||||
if (UDF_I(inode)->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB)
|
||||
inode->i_data.a_ops = &udf_adinicb_aops;
|
||||
else
|
||||
inode->i_data.a_ops = &udf_aops;
|
||||
inode->i_op = &udf_file_inode_operations;
|
||||
inode->i_fop = &udf_file_operations;
|
||||
mark_inode_dirty(inode);
|
||||
|
||||
d_tmpfile(dentry, inode);
|
||||
unlock_new_inode(inode);
|
||||
return 0;
|
||||
@ -629,15 +621,13 @@ static int udf_mknod(struct inode *dir, struct dentry *dentry, umode_t mode,
|
||||
dev_t rdev)
|
||||
{
|
||||
struct inode *inode;
|
||||
int err;
|
||||
|
||||
if (!old_valid_dev(rdev))
|
||||
return -EINVAL;
|
||||
|
||||
err = -EIO;
|
||||
inode = udf_new_inode(dir, mode, &err);
|
||||
if (!inode)
|
||||
return err;
|
||||
inode = udf_new_inode(dir, mode);
|
||||
if (IS_ERR(inode))
|
||||
return PTR_ERR(inode);
|
||||
|
||||
init_special_inode(inode, mode, rdev);
|
||||
return udf_add_nondir(dentry, inode);
|
||||
@ -652,10 +642,9 @@ static int udf_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
|
||||
struct udf_inode_info *dinfo = UDF_I(dir);
|
||||
struct udf_inode_info *iinfo;
|
||||
|
||||
err = -EIO;
|
||||
inode = udf_new_inode(dir, S_IFDIR | mode, &err);
|
||||
if (!inode)
|
||||
goto out;
|
||||
inode = udf_new_inode(dir, S_IFDIR | mode);
|
||||
if (IS_ERR(inode))
|
||||
return PTR_ERR(inode);
|
||||
|
||||
iinfo = UDF_I(inode);
|
||||
inode->i_op = &udf_dir_inode_operations;
|
||||
@ -861,7 +850,7 @@ out:
|
||||
static int udf_symlink(struct inode *dir, struct dentry *dentry,
|
||||
const char *symname)
|
||||
{
|
||||
struct inode *inode;
|
||||
struct inode *inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO);
|
||||
struct pathComponent *pc;
|
||||
const char *compstart;
|
||||
struct extent_position epos = {};
|
||||
@ -874,9 +863,8 @@ static int udf_symlink(struct inode *dir, struct dentry *dentry,
|
||||
struct udf_inode_info *iinfo;
|
||||
struct super_block *sb = dir->i_sb;
|
||||
|
||||
inode = udf_new_inode(dir, S_IFLNK | S_IRWXUGO, &err);
|
||||
if (!inode)
|
||||
goto out;
|
||||
if (IS_ERR(inode))
|
||||
return PTR_ERR(inode);
|
||||
|
||||
iinfo = UDF_I(inode);
|
||||
down_write(&iinfo->i_data_sem);
|
||||
|
@ -208,7 +208,7 @@ extern int udf_CS0toUTF8(struct ustr *, const struct ustr *);
|
||||
|
||||
/* ialloc.c */
|
||||
extern void udf_free_inode(struct inode *);
|
||||
extern struct inode *udf_new_inode(struct inode *, umode_t, int *);
|
||||
extern struct inode *udf_new_inode(struct inode *, umode_t);
|
||||
|
||||
/* truncate.c */
|
||||
extern void udf_truncate_tail_extent(struct inode *);
|
||||
|
Loading…
Reference in New Issue
Block a user