--=_courier-21819-1053538173-0001-2
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Here's a patch against 2.4.18 that allows user space to flush a file
from both the buffer cache and the page cache. The reason for flushing
a file from the caches is to the read the file again to verify it made
it to more permanent storage correctly. Someone may want to add
similiar code to 2.5.
Ross
--=_courier-21819-1053538173-0001-2
Content-Type: text/plain; name="linux-2.4-FIOFLUSH.patch"; charset=iso-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="linux-2.4-FIOFLUSH.patch"
diff -urdbB linux-2.4.18-58/fs/ioctl.c linux-2.4.18-59/fs/ioctl.c
--- linux-2.4.18-58/fs/ioctl.c Fri Feb 9 11:29:44 2001
+++ linux-2.4.18-59/fs/ioctl.c Thu May 1 09:52:18 2003
@@ -39,6 +39,13 @@
return put_user(inode->i_sb->s_blocksize, (int *) arg);
case FIONREAD:
return put_user(inode->i_size - filp->f_pos, (int *) arg);
+
+ case FIOFLUSH:
+ write_inode_now(inode, 1);
+ invalidate_inode_buffers(inode);
+ invalidate_inode_pages(inode);
+ return 0;
+
}
if (filp->f_op && filp->f_op->ioctl)
return filp->f_op->ioctl(inode, filp, cmd, arg);
diff -urdbB linux-2.4.18-58/include/asm/ioctls.h linux-2.4.18-59/include/asm/ioctls.h
--- linux-2.4.18-58/include/asm-i386/ioctls.h Fri Jul 24 11:10:16 1998
+++ linux-2.4.18-59/include/asm-i386/ioctls.h Thu May 1 09:53:51 2003
@@ -32,6 +32,7 @@
#define TIOCGSOFTCAR 0x5419
#define TIOCSSOFTCAR 0x541A
#define FIONREAD 0x541B
+#define FIOFLUSH _IO('F', 1) /* flush a file out of the caches */
#define TIOCINQ FIONREAD
#define TIOCLINUX 0x541C
#define TIOCCONS 0x541D
--=_courier-21819-1053538173-0001-2--