* [PATCH] NFS/INOTIFY: inotify user when deleting files on nfs @ 2011-12-14 22:27 Maxim Uvarov [not found] ` <1323901667-3746-1-git-send-email-maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 2+ messages in thread From: Maxim Uvarov @ 2011-12-14 22:27 UTC (permalink / raw) To: linux-kernel; +Cc: linux-fsdevel, Maxim Uvarov This issue was introduced with LTP inotify02 test. If file system is not NFS user inotify application gets IN_DELETE event. But on NFS code avoids d_delete() which sends this event. This patch makes notification on NFS the same as non-NFS. I.e. vfs_unlink still avoids deletion but it sends event for NFS sillyrenamed files. More details here: https://lkml.org/lkml/2011/11/29/421 Signed-off-by: Maxim Uvarov <maxim.uvarov@oracle.com> --- fs/namei.c | 19 ++++++++++++++++--- 1 files changed, 16 insertions(+), 3 deletions(-) diff --git a/fs/namei.c b/fs/namei.c index a9a7166..44a997e 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -2737,10 +2737,23 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) } mutex_unlock(&dentry->d_inode->i_mutex); - /* We don't d_delete() NFS sillyrenamed files--they still exist. */ - if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) { + + if (!error) { fsnotify_link_count(dentry->d_inode); - d_delete(dentry); + if (!(dentry->d_flags & DCACHE_NFSFS_RENAMED)) + d_delete(dentry); + else { + /* We don't d_delete() NFS sillyrenamed files - they + * still exist. But from user side this file was + * deleted. So that we need to generate notify event + * about it. + */ + struct inode *inode; + int isdir; + inode = dentry->d_inode; + isdir = S_ISDIR(inode->i_mode); + fsnotify_nameremove(dentry, isdir); + } } return error; -- 1.7.4.1 ^ permalink raw reply related [flat|nested] 2+ messages in thread
[parent not found: <1323901667-3746-1-git-send-email-maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH] NFS/INOTIFY: inotify user when deleting files on nfs [not found] ` <1323901667-3746-1-git-send-email-maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> @ 2011-12-15 10:42 ` Boaz Harrosh 0 siblings, 0 replies; 2+ messages in thread From: Boaz Harrosh @ 2011-12-15 10:42 UTC (permalink / raw) To: Maxim Uvarov, NFS list Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-fsdevel-u79uwXL29TY76Z2rM5mHXA Forwarding to the NFS mailing list ... On 12/15/2011 12:27 AM, Maxim Uvarov wrote: > This issue was introduced with LTP inotify02 test. > If file system is not NFS user inotify application > gets IN_DELETE event. But on NFS code avoids d_delete() > which sends this event. This patch makes notification > on NFS the same as non-NFS. I.e. vfs_unlink still avoids > deletion but it sends event for NFS sillyrenamed files. > More details here: > https://lkml.org/lkml/2011/11/29/421 > > Signed-off-by: Maxim Uvarov <maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> > --- > fs/namei.c | 19 ++++++++++++++++--- > 1 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/fs/namei.c b/fs/namei.c > index a9a7166..44a997e 100644 > --- a/fs/namei.c > +++ b/fs/namei.c > @@ -2737,10 +2737,23 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry) > } > mutex_unlock(&dentry->d_inode->i_mutex); > > - /* We don't d_delete() NFS sillyrenamed files--they still exist. */ > - if (!error && !(dentry->d_flags & DCACHE_NFSFS_RENAMED)) { > + > + if (!error) { > fsnotify_link_count(dentry->d_inode); > - d_delete(dentry); > + if (!(dentry->d_flags & DCACHE_NFSFS_RENAMED)) > + d_delete(dentry); > + else { > + /* We don't d_delete() NFS sillyrenamed files - they > + * still exist. But from user side this file was > + * deleted. So that we need to generate notify event > + * about it. > + */ > + struct inode *inode; > + int isdir; > + inode = dentry->d_inode; > + isdir = S_ISDIR(inode->i_mode); > + fsnotify_nameremove(dentry, isdir); > + } > } > > return error; -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-12-15 10:42 UTC | newest] Thread overview: 2+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-12-14 22:27 [PATCH] NFS/INOTIFY: inotify user when deleting files on nfs Maxim Uvarov [not found] ` <1323901667-3746-1-git-send-email-maxim.uvarov-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> 2011-12-15 10:42 ` Boaz Harrosh
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).