[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <E1KLhkW-0004y4-Ge@pomaz-ex.szeredi.hu>
Date: Wed, 23 Jul 2008 19:03:36 +0200
From: Miklos Szeredi <miklos@...redi.hu>
To: mikulas@...ax.karlin.mff.cuni.cz
CC: miklos@...redi.hu, viro@...IV.linux.org.uk,
linux-kernel@...r.kernel.org
Subject: Re: [patch 04/14] hpfs: dont call notify_change
On Wed, 23 Jul 2008, Mikulas Patocka wrote:
> What about down_write on i_alloc_sem --- notify change takes that and your
> patch bypasses that.
i_alloc_sem is only relevant if filesystem uses blockdev_direct_IO()
and friends. It is not used for anything else, so for hpfs there's no
need to surround take that lock.
Thanks,
Miklos
> > From: Miklos Szeredi <mszeredi@...e.cz>
> >
> > hpfs_unlink() calls notify_change() to truncate the file before
> > deleting. Replace with explicit call to hpfs_notify_change().
> >
> > This is equivalent, except that:
> > - security_inode_setattr() is not called before hpfs_notify_change()
> > - fsnotify_change() is not called after hpfs_notify_change()
> >
> > The truncation is just an implementation detail, so both the security
> > check and the notification are unnecessary.
> >
> > Possibly even the ctime modification is wrong?
> >
> > Signed-off-by: Miklos Szeredi <mszeredi@...e.cz>
> > CC: Mikulas Patocka <mikulas@...ax.karlin.mff.cuni.cz>
> > ---
> > fs/hpfs/namei.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > Index: linux-2.6/fs/hpfs/namei.c
> > ===================================================================
> > --- linux-2.6.orig/fs/hpfs/namei.c 2008-07-23 00:10:13.000000000 +0200
> > +++ linux-2.6/fs/hpfs/namei.c 2008-07-23 00:10:22.000000000 +0200
> > @@ -426,7 +426,8 @@ again:
> > /*printk("HPFS: truncating file before delete.\n");*/
> > newattrs.ia_size = 0;
> > newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
> > - err = notify_change(dentry, &newattrs);
> > + newattrs.ia_ctime = current_fs_time(inode->i_sb);
> > + err = hpfs_notify_change(dentry, &newattrs);
> > put_write_access(inode);
> > if (!err)
> > goto again;
> >
> > --
> >
>
--
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