static inline loff_t llseek(struct file *file, loff_t offset, int origin) { loff_t (*fn)(struct file *, loff_t, int; loff_t retval; /* tutaj ustawiana jest domyślna funkcja */ fn = default_llseek; /* jeśli dany system plików dostarcza na odpowiednią funkcję, * * to zapisujemy jej wskaźnik na zmienną fn */ if (file->f_op && file->f_op->llseek) fn = file->f_op->llseek; lock_kernel(); /* wywołanie odpowiedniej funkcji lub funkcji domyślnej */ retval = fn(file, offset, origin); unlock_kernel(); return retval; }