Re: [PATCH 07/22][RFC] Unionfs: Directory file operations

Jan Engelhardt
2006-09-04T07:11:06Z

>+/* copied from generic filldir in fs/readir.c */
>+static int unionfs_filldir(void *dirent, const char *name, int namelen,
>+ loff_t offset, ino_t ino, unsigned int d_type)
>+{
>+ struct unionfs_getdents_callback *buf =
>+ (struct unionfs_getdents_callback *)dirent;

Nocast.

>+ if ((namelen > UNIONFS_WHLEN) && !strncmp(name, UNIONFS_WHPFX, UNIONFS_WHLEN)) {
()

>+ /* if 'name' isn't a whiteout filldir it. */
^
I would put a , here

>+ err = vfs_readdir(hidden_file, unionfs_filldir, (void *)&buf);

Most likely nocast.

>+ if (err < 0) {
>+ goto out;
>+ }
>+
>+ if (buf.filldir_error) {
>+ break;
>+ }

-{}

>+ if (offset == rdstate2offset(rdstate)) {
>+ err = offset;
>+ } else if (file->f_pos == DIREOF) {
>+ err = DIREOF;
>+ } else {
>+ err = -EINVAL;
>+ }

-{}

>+/* Trimmed directory options, we shouldn't pass everything down since
>+ * we don't want to operate on partial directories.
>+ */
>+struct file_operations unionfs_dir_fops = {
>+ .llseek = unionfs_dir_llseek,
>+ .read = generic_read_dir,
>+ .readdir = unionfs_readdir,
>+ .unlocked_ioctl = unionfs_ioctl,
>+ .open = unionfs_open,
>+ .release = unionfs_file_release,
>+ .flush = unionfs_flush,
>+};

Might want to line up structs' members.

Jan Engelhardt
--

--
VGER BF report: H 1.9526e-07