On 2015-06-30 at 09:30 +0200, Edward Shishkin wrote: > > On 06/30/2015 09:13 AM, Ivan Shapovalov wrote: > > On 2015-06-30 at 01:54 +0800, Edward Shishkin wrote: > > > Oh, bad > > > generic_write_checks() doesn't change offset now, > > > please, ignore this patch.. > > Hi, > > Hello. > > > > > it does change it, but in struct kiocb instance, but we keep using > > initial "off". > > > > i'm trying to port file_operations' ->write() to ->write_iter() > > right > > > Hmm. You'll need to modify ->write() of both file plugins - > it's not simple, esp. for cryptcompress, which performs writes by > chunks (4, 8, ... 64K) Yeah, I understand. However, it doesn't seem too complex. It's simply iov_iter* instead of a char*+size_t. I just need to grok how does the page cache work (wrt. "faulting in" pages, flushing caches, error handling, etc). I'm now trying to read the generic code together with btrfs' implementation, compare bit-by-bit and implement the same in reiser4. > > > now, FTR. The obvious fix (assign back ki_pos to off) is too ugly > > :) > > may be just create a static inline function > reiser4_write_check() ? > { > ... > generic_write_check(); > *off = iocb.ki_pos; > } Sure, it will work, but right now, as everything in vfs moves towards *_iter methods, I guess there could be some sense in moving to those as well... Yes, I understand that vfs is a fast-moving target, but why not? Thanks, -- Ivan Shapovalov / intelfx /
Attachment:
signature.asc
Description: This is a digitally signed message part