On 7/11/06, Deepak Joshi <deepak_cins@xxxxxxxxxxx> wrote:
Hi all, While reading device drivers by rubini, i found following statement related to loff_t fops. The current reading or writing position. loff_t is a 64-bit value (long long in gcc terminology). The driver can read this value if it needs to know the current position in the file, but should never change it (read and write should update a position using the pointer they receive as the last argument instead of acting on filp->f_pos directly).
vfs subsystem increments the f_pos immediately after the call to f_ops->read()/write(). If you increment f_pos in read()/write(), this value would be incorrect. (would be modified twice) Look in fs/read_write.c for sys_read/sys_write implementations. HTH, Om. -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/