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