Messages in this thread Patch in this message | | | Date | Thu, 20 Aug 2015 11:00:21 +0800 | From | Dongsheng Yang <> | Subject | Re: [PATCH 2/2] ubifs: Allow O_DIRECT |
| |
On 08/20/2015 04:35 AM, Richard Weinberger wrote: > Currently UBIFS does not support direct IO, but some applications > blindly use the O_DIRECT flag. > Instead of failing upon open() we can do better and fall back > to buffered IO.
Hmmmm, to be honest, I am not sure we have to do it as Dave suggested. I think that's just a work-around for current fstests.
IMHO, perform a buffered IO when user request direct IO without any warning sounds not a good idea. Maybe adding a warning would make it better.
I think we need more discussion about AIO&DIO in ubifs, and actually I have a plan for it. But I have not listed the all cons and pros of it so far.
Artem, what's your opinion?
Yang > > Cc: Dongsheng Yang <yangds.fnst@cn.fujitsu.com> > Cc: dedekind1@gmail.com > Suggested-by: Dave Chinner <david@fromorbit.com> > Signed-off-by: Richard Weinberger <richard@nod.at> > --- > fs/ubifs/file.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c > index a3dfe2a..a61fe86 100644 > --- a/fs/ubifs/file.c > +++ b/fs/ubifs/file.c > @@ -1540,6 +1540,15 @@ static int ubifs_file_mmap(struct file *file, struct vm_area_struct *vma) > return 0; > } > > +/* > + * For now fall back to buffered IO. > + */ > +static ssize_t ubifs_direct_IO(struct kiocb *iocb, struct iov_iter *iter, > + loff_t offset) > +{ > + return 0; > +} > + > const struct address_space_operations ubifs_file_address_operations = { > .readpage = ubifs_readpage, > .writepage = ubifs_writepage, > @@ -1548,6 +1557,7 @@ const struct address_space_operations ubifs_file_address_operations = { > .invalidatepage = ubifs_invalidatepage, > .set_page_dirty = ubifs_set_page_dirty, > .releasepage = ubifs_releasepage, > + .direct_IO = ubifs_direct_IO, > }; > > const struct inode_operations ubifs_file_inode_operations = { >
| |