Patch FIOFLUSH

From: Ross Biro (rossb@google.com)
Date: Wed May 21 2003 - 12:28:03 EST


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

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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri May 23 2003 - 22:00:45 EST