Hi Greg,

> Then if userspace opens a file with O_DIRECT but the file is on a
> filesytem that can't support full O_DIRECT functionality for the
> reasons you give, the kernel could automatically fall back to
> O_DIRECT_NO_CACHE.

The solution you are proposing is definitely a good idea, but its not the
mail thread is about. I am talking about the cases where filesystems _DO_
support DIRECT IO and they fail to serve IO because buffers passed are not
mapped in user space process page table.

I think what needs to be done is patch get_user_pages or write a wrapper
which filesystems can use something like:
get_pages_pinned
1. calls get_user_pages if buffer passed it user space buffer
2. ignore pinning for kernel buffers

I think modifying get_user_pages only should be the minimal chage as we dont
have to patch individual file-systems in this case.

Thanks,
Rajat

Reply via email to