X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=fs%2Faio.c;h=1157e13a36d681ecba8e926bb9e91943cfeb6723;hb=a909d3e636995ba7c349e2ca5dbb528154d4ac30;hp=4fe81d1c60f962b53392a6b4b0d047f129509c87;hpb=5acb6052ce304d89e36f599f1e27a7c63d389ca0;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); }