]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ext4: async direct IO for holes and fallocate support
authorMingming Cao <cmm@us.ibm.com>
Mon, 28 Sep 2009 19:48:29 +0000 (15:48 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 14 Dec 2009 16:07:03 +0000 (08:07 -0800)
commit3c42b7eb297192519fbfa80e1c77abd01c223114
tree8ea56960d2682b309707a81d05891af3bef5460b
parent1295e40acf6d150d129fac939bc97aed771e6c7b
ext4: async direct IO for holes and fallocate support

(cherry picked from commit 8d5d02e6b176565c77ff03604908b1453a22044d)

For async direct IO that covers holes or fallocate, the end_io
callback function now queued the convertion work on workqueue but
don't flush the work rightaway as it might take too long to afford.

But when fsync is called after all the data is completed, user expects
the metadata also being updated before fsync returns.

Thus we need to flush the conversion work when fsync() is called.
This patch keep track of a listed of completed async direct io that
has a work queued on workqueue.  When fsync() is called, it will go
through the list and do the conversion.

Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/ext4/ext4.h
fs/ext4/extents.c
fs/ext4/fsync.c
fs/ext4/inode.c
fs/ext4/super.c