diff options
-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 4291fd1617ab..cc7ea5de2fdd 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 | |||
136 | void *old_secdata; | 136 | void *old_secdata; |
137 | size_t old_secdata_len; | 137 | size_t old_secdata_len; |
138 | 138 | ||
139 | iattrs = sd->s_iattr; | 139 | if (!sd->s_iattr) { |
140 | if (!iattrs) | 140 | sd->s_iattr = sysfs_init_inode_attrs(sd); |
141 | iattrs = sysfs_init_inode_attrs(sd); | 141 | if (!sd->s_iattr) |
142 | if (!iattrs) | 142 | return -ENOMEM; |
143 | return -ENOMEM; | 143 | } |
144 | 144 | ||
145 | iattrs = sd->s_iattr; | ||
145 | old_secdata = iattrs->ia_secdata; | 146 | old_secdata = iattrs->ia_secdata; |
146 | old_secdata_len = iattrs->ia_secdata_len; | 147 | old_secdata_len = iattrs->ia_secdata_len; |
147 | 148 | ||