[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080416194709.GA4762@martell.zuzino.mipt.ru>
Date: Wed, 16 Apr 2008 23:47:09 +0400
From: Alexey Dobriyan <adobriyan@...il.com>
To: Al Viro <viro@...IV.linux.org.uk>
Cc: Joakim Tjernlund <joakim.tjernlund@...nsmode.se>,
linux-kernel@...r.kernel.org, ebiederm@...ssion.com
Subject: Re: Current git tree broke busybox start-stop-daemon
On Wed, Apr 16, 2008 at 08:34:17PM +0100, Al Viro wrote:
> On Wed, Apr 16, 2008 at 11:00:57PM +0400, Alexey Dobriyan wrote:
> > On Wed, Apr 16, 2008 at 07:25:02PM +0200, Joakim Tjernlund wrote:
> > > open("/proc/1/stat", O_RDONLY|O_LARGEFILE) = 4
> > > _llseek(4, 0, 0xbfb94898, SEEK_END) = -1 EINVAL (Invalid argument)
> >
> > > So it appears that lseek is no longer allowed for /proc/1/stat
> > > Bug or feature?
> > > start-stop-daemon works fine in 2.6.23
> >
> > That's what happens when switching ->llseek method from NULL
> > (effectively, default_llseek), to seq_lseek (which rejects SEEK_END).
> >
> > commit be614086a4aff163d5aa0dc160638d1193b59cde
> > commit ee992744ea53db0a90c986fd0a70fbbf91e7f8bd
> >
> > Al, do you remember why SEEK_END was omitted back then?
>
> Because there's no sane way to implement it?
Ugly ->index games, sigh...
> Note that original cheerfully
> did nothing, since it had zero ->i_size for that file. Which makes program
> in question very odd - what behaviour does it rely upon?
Busybox just wants to estimate size of a file. And it knows about
zero-length /proc/*/stat .
libbb/read.c:
void *xmalloc_open_read_close(const char *filename, size_t *sizep)
{
char *buf;
size_t size = sizep ? *sizep : INT_MAX;
int fd;
off_t len;
fd = xopen(filename, O_RDONLY);
/* /proc/N/stat files report len 0 here */
/* In order to make such files readable, we add small const */
len = xlseek(fd, 0, SEEK_END) | 0x3ff; /* + up to 1k */
...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists