Re: file metadata via fs API (was: [GIT PULL] Filesystem Information)

From: Miklos Szeredi
Date: Wed Aug 12 2020 - 03:56:08 EST


On Wed, Aug 12, 2020 at 2:05 AM David Howells <dhowells@xxxxxxxxxx> wrote:

> > {
> > int fd, attrfd;
> >
> > fd = open(path, O_PATH);
> > attrfd = openat(fd, name, O_ALT);
> > close(fd);
> > read(attrfd, value, size);
> > close(attrfd);
> > }
>
> Please don't go down this path. You're proposing five syscalls - including
> creating two file descriptors - to do what fsinfo() does in one.

So what? People argued against readfile() for exactly the opposite of
reasons, even though that's a lot less specialized than fsinfo().

Worried about performance? Io-uring will allow you to do all those
five syscalls (or many more) with just one I/O submission.

Thanks,
Miklos