X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fread_write.c;h=9c0485236e68d4abd02951d99aec5eb4a2905720;hb=5b54470daded19d83ea2bbf5f6bc12662942cd63;hp=113386d6fd2de0bdd12721e65b85a0fcbe8ab7b1;hpb=6458a54423f9a4963e7e88ff62040117285e6b8c;p=karo-tx-linux.git diff --git a/fs/read_write.c b/fs/read_write.c index 113386d6fd2d..9c0485236e68 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -97,6 +97,23 @@ loff_t generic_file_llseek(struct file *file, loff_t offset, int origin) } EXPORT_SYMBOL(generic_file_llseek); +/** + * noop_llseek - No Operation Performed llseek implementation + * @file: file structure to seek on + * @offset: file offset to seek to + * @origin: type of seek + * + * This is an implementation of ->llseek useable for the rare special case when + * userspace expects the seek to succeed but the (device) file is actually not + * able to perform the seek. In this case you use noop_llseek() instead of + * falling back to the default implementation of ->llseek. + */ +loff_t noop_llseek(struct file *file, loff_t offset, int origin) +{ + return file->f_pos; +} +EXPORT_SYMBOL(noop_llseek); + loff_t no_llseek(struct file *file, loff_t offset, int origin) { return -ESPIPE;