Hi Jeff,

Jeff Mahoney:
> No, I did. They're used with AppArmor, which removed ia_file and
> ATTR_FILE from struct iattr and replaced it with a fsetattr fop. See
> attached.

I see.
In the new aufs_do_setattr(), to replace vfsub_notify_change() by
vfsub_fnotify_change() with giving au_h_fptr() as the last parameter is
necessary, isn't it?
Actually I cannot see such change in your patch.


Junjiro R. Okajima


> --- a/fs/aufs25/i_op.c
> +++ b/fs/aufs25/i_op.c
> @@ -727,13 +727,13 @@ static int au_lock_and_icpup(struct dent
>       return err;
>  }
> =20
> -static int aufs_setattr(struct dentry *dentry, struct iattr *ia)
> +static int aufs_do_setattr(struct dentry *dentry, struct iattr *ia,
> +                        struct file *file)
>  {
>       int err;
>       struct inode *inode;
>       struct super_block *sb;
>       __u32 events;
> -     struct file *file;
>       loff_t sz;
>       struct au_icpup_args *a;
> =20
> @@ -751,12 +751,8 @@ static int aufs_setattr(struct dentry *d
>       si_read_lock(sb, AuLock_FLUSH);
>       vfsub_args_init(&a->vargs, a->ign, au_test_dlgt(au_mntflags(sb)), 0);
> =20
> -     if (ia->ia_valid & ATTR_FILE) {
> -             /* currently ftruncate(2) only */
> -             file =3D ia->ia_file;
> +        if (file)
>               fi_write_lock(file);
> -             ia->ia_file =3D au_h_fptr(file, au_fbstart(file));
> -     }
> =20
>       sz =3D -1;
>       if ((ia->ia_valid & ATTR_SIZE)
> @@ -800,11 +796,8 @@ static int aufs_setattr(struct dentry *d
>       au_unpin(&a->pin);
>       di_write_unlock(dentry);
>   out_si:
> -     if (file) {
> +     if (file)
>               fi_write_unlock(file);
> -             ia->ia_file =3D file;
> -             ia->ia_valid |=3D ATTR_FILE;
> -     }
>       si_read_unlock(sb);
>       kfree(a);
>   out:

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

Reply via email to