On Mon, Aug 08, 2011 at 12:15:03AM +0000, David Holland wrote: > > > struct range range; > > > > > > while (pos < len) { > > > fgetrange(fd, pos, &range); > > > if (range.r_type == RANGE_DATA) { > > > amount = range.r_end - pos; > > > if (amount > sizeof(buf)) { > > > amount = sizeof(buf); > > > } > > > pread(fd, buf, amount, pos); > > > pwrite(outfd, buf, amount, pos); > > > } > > > pos = range.r_end; > > > }
Shall i try to work this out a bit more? with `fgetrange' being a frontend or define to an fcntl (like in the form of an _FCNRW())? that saves the implementation of a new systemcall and a new VOP for all FS's. With regards, Reinoud