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.

Signed-off-by: Marc Kleine-Budde <m...@pengutronix.de>
---
 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 0f7139b..1395307 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.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to