patch-2.4.0-test9 linux/fs/read_write.c
Next file: linux/fs/smbfs/inode.c
Previous file: linux/fs/ramfs/inode.c
Back to the patch index
Back to the overall index
- Lines: 57
- Date:
Fri Sep 22 14:21:19 2000
- Orig file:
v2.4.0-test8/linux/fs/read_write.c
- Orig date:
Tue Jun 20 07:52:36 2000
diff -u --recursive --new-file v2.4.0-test8/linux/fs/read_write.c linux/fs/read_write.c
@@ -10,6 +10,7 @@
#include <linux/file.h>
#include <linux/uio.h>
#include <linux/smp_lock.h>
+#include <linux/dnotify.h>
#include <asm/uaccess.h>
@@ -132,6 +133,9 @@
ret = read(file, buf, count, &file->f_pos);
}
}
+ if (ret > 0)
+ inode_dir_notify(file->f_dentry->d_parent->d_inode,
+ DN_ACCESS);
fput(file);
}
return ret;
@@ -156,6 +160,9 @@
ret = write(file, buf, count, &file->f_pos);
}
}
+ if (ret > 0)
+ inode_dir_notify(file->f_dentry->d_parent->d_inode,
+ DN_MODIFY);
fput(file);
}
return ret;
@@ -257,6 +264,10 @@
if (iov != iovstack)
kfree(iov);
out_nofree:
+ /* VERIFY_WRITE actually means a read, as we write to user space */
+ if ((ret + (type == VERIFY_WRITE)) > 0)
+ inode_dir_notify(file->f_dentry->d_parent->d_inode,
+ (type == VERIFY_WRITE) ? DN_MODIFY : DN_ACCESS);
return ret;
}
@@ -327,6 +338,8 @@
if (pos < 0)
goto out;
ret = read(file, buf, count, &pos);
+ if (ret > 0)
+ inode_dir_notify(file->f_dentry->d_parent->d_inode, DN_ACCESS);
out:
fput(file);
bad_file:
@@ -357,6 +370,8 @@
goto out;
ret = write(file, buf, count, &pos);
+ if (ret > 0)
+ inode_dir_notify(file->f_dentry->d_parent->d_inode, DN_MODIFY);
out:
fput(file);
bad_file:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)