| .. | .. |
|---|
| 4166 | 4166 | p = xdr_inline_decode(xdr, len); |
|---|
| 4167 | 4167 | if (unlikely(!p)) |
|---|
| 4168 | 4168 | return -EIO; |
|---|
| 4169 | + bitmap[2] &= ~FATTR4_WORD2_SECURITY_LABEL; |
|---|
| 4169 | 4170 | if (len < NFS4_MAXLABELLEN) { |
|---|
| 4170 | | - if (label) { |
|---|
| 4171 | | - if (label->len) { |
|---|
| 4172 | | - if (label->len < len) |
|---|
| 4173 | | - return -ERANGE; |
|---|
| 4174 | | - memcpy(label->label, p, len); |
|---|
| 4175 | | - } |
|---|
| 4171 | + if (label && label->len) { |
|---|
| 4172 | + if (label->len < len) |
|---|
| 4173 | + return -ERANGE; |
|---|
| 4174 | + memcpy(label->label, p, len); |
|---|
| 4176 | 4175 | label->len = len; |
|---|
| 4177 | 4176 | label->pi = pi; |
|---|
| 4178 | 4177 | label->lfs = lfs; |
|---|
| 4179 | 4178 | status = NFS_ATTR_FATTR_V4_SECURITY_LABEL; |
|---|
| 4180 | 4179 | } |
|---|
| 4181 | | - bitmap[2] &= ~FATTR4_WORD2_SECURITY_LABEL; |
|---|
| 4182 | 4180 | } else |
|---|
| 4183 | 4181 | printk(KERN_WARNING "%s: label too long (%u)!\n", |
|---|
| 4184 | 4182 | __func__, len); |
|---|