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=/