spin_unlock(&dentry->d_lock);
}
}
+EXPORT_SYMBOL_GPL(dnotify_parent);
static int __init dnotify_init(void)
{
#endif /* CONFIG_NFSD_V3 */
#include <linux/nfsd/nfsfh.h>
#include <linux/quotaops.h>
+#include <linux/dnotify.h>
#include <asm/uaccess.h>
nfsdstats.io_read += err;
*count = err;
err = 0;
+ dnotify_parent(file.f_dentry, DN_ACCESS);
} else
err = nfserrno(err);
out_close:
/* Write the data. */
oldfs = get_fs(); set_fs(KERNEL_DS);
err = vfs_writev(&file, vec, vlen, &offset);
- if (err >= 0)
- nfsdstats.io_write += cnt;
set_fs(oldfs);
+ if (err >= 0) {
+ nfsdstats.io_write += cnt;
+ dnotify_parent(file.f_dentry, DN_MODIFY);
+ }
/* clear setuid/setgid flag after write */
if (err >= 0 && (inode->i_mode & (S_ISUID | S_ISGID))) {