xfs
[Top] [All Lists]

xfs_end_io_direct() with negative size?

To: xfs@xxxxxxxxxxx
Subject: xfs_end_io_direct() with negative size?
From: Zach Brown <zach.brown@xxxxxxxxxx>
Date: Fri, 11 Aug 2006 10:43:12 -0700
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Thunderbird 1.5.0.4 (X11/20060614)
So, I was lost in fs/direct-io.c chasing yet another bug when I noticed
that a recent unrelated change might have changed the semantics of the
end_io() call.

   http://www.kernel.org/hg/linux-2.6/?cs=34c151cf341f

Notice how that changes the aio path to set 'transferred' to -EIO based
on dio->io_error before calling dio_complete() instead of after, like
the sync path does with its possibly negative 'ret'.

So it looks like xfs_end_io_direct() can now get a -ve size if, say,
someone unplugs a drive part-way through a dio+aio write.  There's an
ASSERT() in there that makes me wonder if this is something we should be
worrying about.

- z


<Prev in Thread] Current Thread [Next in Thread>