This patch moves the modification of ui->ui_size and ui->data_len in the create_xattr() and change_xattr() functions, so that they are protected by the ui_mutex as stated in the documenation of the the struct ubifs_inode. Cc: linux-stable <stable@xxxxxxxxxxxxxxx> Tested-by: Mats Karrman <mats.karrman@xxxxxxxxxx> Signed-off-by: Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> --- fs/ubifs/xattr.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fs/ubifs/xattr.c b/fs/ubifs/xattr.c index 5e0a63b..31a65d9 100644 --- a/fs/ubifs/xattr.c +++ b/fs/ubifs/xattr.c @@ -143,10 +143,10 @@ static int create_xattr(struct ubifs_info *c, struct inode *host, err = -ENOMEM; goto out_free; } - inode->i_size = ui->ui_size = size; - ui->data_len = size; mutex_lock(&host_ui->ui_mutex); + inode->i_size = ui->ui_size = size; + ui->data_len = size; host->i_ctime = ubifs_current_time(host); host_ui->xattr_cnt += 1; host_ui->xattr_size += CALC_DENT_SIZE(nm->len); @@ -208,10 +208,10 @@ static int change_xattr(struct ubifs_info *c, struct inode *host, err = -ENOMEM; goto out_free; } - inode->i_size = ui->ui_size = size; - ui->data_len = size; mutex_lock(&host_ui->ui_mutex); + inode->i_size = ui->ui_size = size; + ui->data_len = size; host->i_ctime = ubifs_current_time(host); host_ui->xattr_size -= CALC_XATTR_BYTES(ui->data_len); host_ui->xattr_size += CALC_XATTR_BYTES(size); -- 1.8.5.3 -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html