X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Faio.c;h=1157e13a36d681ecba8e926bb9e91943cfeb6723;hb=8bf371e6adff29758cc3c57c17df4486513081f8;hp=4fe81d1c60f962b53392a6b4b0d047f129509c87;hpb=a439f8f2879c68676eb74501ef9a6f187aeeec57;p=cascardo%2Flinux.git diff --git a/fs/aio.c b/fs/aio.c index 4fe81d1c60f9..1157e13a36d6 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -274,14 +274,17 @@ __initcall(aio_setup); static void put_aio_ring_file(struct kioctx *ctx) { struct file *aio_ring_file = ctx->aio_ring_file; + struct address_space *i_mapping; + if (aio_ring_file) { truncate_setsize(aio_ring_file->f_inode, 0); /* Prevent further access to the kioctx from migratepages */ - spin_lock(&aio_ring_file->f_inode->i_mapping->private_lock); - aio_ring_file->f_inode->i_mapping->private_data = NULL; + i_mapping = aio_ring_file->f_inode->i_mapping; + spin_lock(&i_mapping->private_lock); + i_mapping->private_data = NULL; ctx->aio_ring_file = NULL; - spin_unlock(&aio_ring_file->f_inode->i_mapping->private_lock); + spin_unlock(&i_mapping->private_lock); fput(aio_ring_file); }