xfs
[Top] [All Lists]

why xfs_write() race with O_DIRECT only?

To: XFS <xfs@xxxxxxxxxxx>
Subject: why xfs_write() race with O_DIRECT only?
From: Curtis Doty <Curtis@xxxxxxxxxxxx>
Date: Fri, 27 Mar 2009 18:10:42 -0700
User-agent: Thundahboyd (Windoze XP; en-US)
I'm guessing this is the race fixed in 2.6.29.
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=25051158

But my app is running O_DIRECT and only calls pwrite(). Is there
something I'm missing that explains the aio stuff etc.?

../C

------------[ cut here ]------------
WARNING: at fs/xfs/linux-2.6/xfs_lrw.c:724 xfs_write+0x364/0x694()
Modules linked in: dm_mod sg usbhid usbkbd usbmouse qla2xxx
firmware_class scsi_transport_fc bnx2 hpilo ipmi_si ipmi_msghandler
container shpchp pci_hotplug rng_core iTCO_wdt iTCO_vendor_support
thermal button processor rtc_cmos rtc_core rtc_lib ehci_hcd uhci_hcd usbcore
Pid: 5789, comm: myServer Not tainted 2.6.28.9 #1
Call Trace:
 [<c0122d30>] warn_on_slowpath+0x41/0x5b
 [<c014f27b>] ? mempool_alloc+0x21/0xbc
 [<c0217d2c>] ? xfs_vm_direct_IO+0x90/0xb4
 [<c021800f>] ? xfs_get_blocks_direct+0x0/0x14
 [<c021754b>] ? xfs_end_io_direct+0x0/0x5c
 [<c014dde5>] ? generic_file_direct_write+0x184/0x1dc
 [<c0210409>] ? xfs_trans_unlocked_item+0x28/0x3e
 [<c021e034>] xfs_write+0x364/0x694
 [<c0107a21>] ? read_tsc+0x9/0x26
 [<c0136c67>] ? getnstimeofday+0x54/0xe4
 [<c021ae6b>] xfs_file_aio_write+0x50/0x58
 [<c016ba9d>] do_sync_write+0xab/0xe6
 [<c01322be>] ? autoremove_wake_function+0x0/0x33
 [<c03874b8>] ? schedule+0x737/0x785
 [<c0107a21>] ? read_tsc+0x9/0x26
 [<c016b9f2>] ? do_sync_write+0x0/0xe6
 [<c016c177>] vfs_write+0x8c/0x108
 [<c016c6a4>] sys_pwrite64+0x45/0x60
 [<c0102be5>] sysenter_do_call+0x12/0x21
 [<c0380000>] ? hpwdt_init_one+0x103/0x38d
---[ end trace 3985be2a3d46f5ef ]---

<Prev in Thread] Current Thread [Next in Thread>
  • why xfs_write() race with O_DIRECT only?, Curtis Doty <=