diff options
Diffstat (limited to 'fs/sysfs/inode.c')
| -rw-r--r-- | fs/sysfs/inode.c | 11 | 
1 files changed, 6 insertions, 5 deletions
| diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index 85eb81683a29..feb2d69396cf 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c @@ -136,12 +136,13 @@ static int sysfs_sd_setsecdata(struct sysfs_dirent *sd, void **secdata, u32 *sec  	void *old_secdata;  	size_t old_secdata_len; -	iattrs = sd->s_iattr; -	if (!iattrs) -		iattrs = sysfs_init_inode_attrs(sd); -	if (!iattrs) -		return -ENOMEM; +	if (!sd->s_iattr) { +		sd->s_iattr = sysfs_init_inode_attrs(sd); +		if (!sd->s_iattr) +			return -ENOMEM; +	} +	iattrs = sd->s_iattr;  	old_secdata = iattrs->ia_secdata;  	old_secdata_len = iattrs->ia_secdata_len; | 
