@@ -38,7 +38,7 @@ static void dentry_release(struct dentry *d);
38
38
static int iterate_incfs_dir (struct file * file , struct dir_context * ctx );
39
39
static struct dentry * dir_lookup (struct inode * dir_inode ,
40
40
struct dentry * dentry , unsigned int flags );
41
- static int dir_mkdir (struct mnt_idmap * idmap , struct inode * dir ,
41
+ static struct dentry * dir_mkdir (struct mnt_idmap * idmap , struct inode * dir ,
42
42
struct dentry * dentry , umode_t mode );
43
43
static int dir_unlink (struct inode * dir , struct dentry * dentry );
44
44
static int dir_link (struct dentry * old_dentry , struct inode * dir ,
@@ -451,7 +451,6 @@ static struct dentry *open_or_create_special_dir(struct dentry *backing_dir,
451
451
{
452
452
struct dentry * index_dentry ;
453
453
struct inode * backing_inode = d_inode (backing_dir );
454
- int err = 0 ;
455
454
456
455
index_dentry = incfs_lookup_dentry (backing_dir , name );
457
456
if (!index_dentry ) {
@@ -466,12 +465,12 @@ static struct dentry *open_or_create_special_dir(struct dentry *backing_dir,
466
465
467
466
/* Index needs to be created. */
468
467
inode_lock_nested (backing_inode , I_MUTEX_PARENT );
469
- err = vfs_mkdir (& nop_mnt_idmap , backing_inode , index_dentry , 0777 );
468
+ index_dentry = vfs_mkdir (& nop_mnt_idmap , backing_inode , index_dentry , 0777 );
470
469
inode_unlock (backing_inode );
471
470
472
- if (err ) {
471
+ if (IS_ERR ( index_dentry ) ) {
473
472
dput (index_dentry );
474
- return ERR_PTR ( err );
473
+ return ERR_CAST ( index_dentry );
475
474
}
476
475
477
476
if (!d_really_is_positive (index_dentry ) ||
@@ -1063,7 +1062,7 @@ static struct dentry *dir_lookup(struct inode *dir_inode, struct dentry *dentry,
1063
1062
return ERR_PTR (err );
1064
1063
}
1065
1064
1066
- static int dir_mkdir (struct mnt_idmap * idmap , struct inode * dir , struct dentry * dentry , umode_t mode )
1065
+ static struct dentry * dir_mkdir (struct mnt_idmap * idmap , struct inode * dir , struct dentry * dentry , umode_t mode )
1067
1066
{
1068
1067
struct mount_info * mi = get_mount_info (dir -> i_sb );
1069
1068
struct inode_info * dir_node = get_incfs_node (dir );
@@ -1073,11 +1072,11 @@ static int dir_mkdir(struct mnt_idmap *idmap, struct inode *dir, struct dentry *
1073
1072
1074
1073
1075
1074
if (!mi || !dir_node || !dir_node -> n_backing_inode )
1076
- return - EBADF ;
1075
+ return ERR_PTR ( - EBADF ) ;
1077
1076
1078
1077
err = mutex_lock_interruptible (& mi -> mi_dir_struct_mutex );
1079
1078
if (err )
1080
- return err ;
1079
+ return ERR_PTR ( err ) ;
1081
1080
1082
1081
get_incfs_backing_path (dentry , & backing_path );
1083
1082
backing_dentry = backing_path .dentry ;
@@ -1099,9 +1098,9 @@ static int dir_mkdir(struct mnt_idmap *idmap, struct inode *dir, struct dentry *
1099
1098
goto out ;
1100
1099
}
1101
1100
inode_lock_nested (dir_node -> n_backing_inode , I_MUTEX_PARENT );
1102
- err = vfs_mkdir (idmap , dir_node -> n_backing_inode , backing_dentry , mode | 0222 );
1101
+ backing_dentry = vfs_mkdir (idmap , dir_node -> n_backing_inode , backing_dentry , mode | 0222 );
1103
1102
inode_unlock (dir_node -> n_backing_inode );
1104
- if (!err ) {
1103
+ if (!IS_ERR ( backing_dentry ) ) {
1105
1104
struct inode * inode = NULL ;
1106
1105
1107
1106
if (d_really_is_negative (backing_dentry ) ||
@@ -1127,7 +1126,7 @@ static int dir_mkdir(struct mnt_idmap *idmap, struct inode *dir, struct dentry *
1127
1126
mutex_unlock (& mi -> mi_dir_struct_mutex );
1128
1127
if (err )
1129
1128
pr_debug ("incfs: %s err:%d\n" , __func__ , err );
1130
- return err ;
1129
+ return ERR_PTR ( err ) ;
1131
1130
}
1132
1131
1133
1132
/*
0 commit comments