| Submitter | Jan Kara |
|---|---|
| Date | Jan. 29, 2013, 11:27 p.m. |
| Message ID | <1359502081-20240-3-git-send-email-jack@suse.cz> |
| Download | mbox | patch |
| Permalink | /patch/216723/ |
| State | Not Applicable |
| Headers | show |
Comments
Hi Jan, On Wed, Jan 30, 2013 at 12:27:59AM +0100, Jan Kara wrote: > Running AIO is pinning inode in memory using file reference. Once AIO > is completed using aio_complete(), file reference is put and inode can > be freed from memory. So we have to be sure that calling aio_complete() > is the last thing we do with the inode. > > CC: xfs@oss.sgi.com > CC: Ben Myers <bpm@sgi.com> > CC: stable@vger.kernel.org > Reviewed-by: Ben Myers <bpm@sgi.com> > Acked-by: Jeff Moyer <jmoyer@redhat.com> > Signed-off-by: Jan Kara <jack@suse.cz> We picked this up in the xfs tree. Sorry to keep you hanging. Regards, Ben -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Patch
diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c index 4111a40..5f707e5 100644 --- a/fs/xfs/xfs_aops.c +++ b/fs/xfs/xfs_aops.c @@ -86,11 +86,11 @@ xfs_destroy_ioend( } if (ioend->io_iocb) { + inode_dio_done(ioend->io_inode); if (ioend->io_isasync) { aio_complete(ioend->io_iocb, ioend->io_error ? ioend->io_error : ioend->io_result, 0); } - inode_dio_done(ioend->io_inode); } mempool_free(ioend, xfs_ioend_pool);