Re: Editing-in-place of a large file

Daniel Phillips (phillips@bonn-fries.net)
Mon, 3 Sep 2001 03:30:14 +0200


On September 3, 2001 02:59 am, Larry McVoy wrote:
> > What's needed is a generalisation of sparse files and truncate().
> > They both handle similar problems.
>
> how about
>
> fzero(int fd, off_t off, size_t len)

sys_clear :-)

> which zeros the blocks and if it can creates a holey file?
>
> However, that's not what Bob wants, he wants to remove commercials from
> recorded TV. So what he wants is
>
> fdelete(int fd, off_t off, size_t len)
>
> which has the semantics of shifting the rest of the file backwards to "off".
>
> The main problem with this is if the off/len are not block aligned. If they
> are, then this is just block twiddling, if they aren't, then this is a file
> rewrite anyway.

He could insert blank video frames to pad to the edges of blocks. Very
theoretical since we are ages away from having fzero/sys_clear. Ask Al Viro
if you want to hear the whole ugly story. (Executive summary: it's hard
enough handling remove/create races with just one boundary per file, now try
it with an unbounded number.)

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/