diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-12-05 22:04:48 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-12-23 10:41:31 -0500 |
commit | b25472f9b96159cc0b9b7ed449448805973cd789 (patch) | |
tree | 7963f6d5adc2a82f6f10b4f9cf427ce931f67c76 /drivers/char | |
parent | b808b1d632f6915e4d6b1badb927b2c970ad11bb (diff) |
new helpers: no_seek_end_llseek{,_size}()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/nwflash.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/drivers/char/nwflash.c b/drivers/char/nwflash.c index e371480d3639..dbe598de9b74 100644 --- a/drivers/char/nwflash.c +++ b/drivers/char/nwflash.c | |||
@@ -277,36 +277,7 @@ static loff_t flash_llseek(struct file *file, loff_t offset, int orig) | |||
277 | printk(KERN_DEBUG "flash_llseek: offset=0x%X, orig=0x%X.\n", | 277 | printk(KERN_DEBUG "flash_llseek: offset=0x%X, orig=0x%X.\n", |
278 | (unsigned int) offset, orig); | 278 | (unsigned int) offset, orig); |
279 | 279 | ||
280 | switch (orig) { | 280 | ret = no_seek_end_llseek_size(file, offset, orig, gbFlashSize); |
281 | case 0: | ||
282 | if (offset < 0) { | ||
283 | ret = -EINVAL; | ||
284 | break; | ||
285 | } | ||
286 | |||
287 | if ((unsigned int) offset > gbFlashSize) { | ||
288 | ret = -EINVAL; | ||
289 | break; | ||
290 | } | ||
291 | |||
292 | file->f_pos = (unsigned int) offset; | ||
293 | ret = file->f_pos; | ||
294 | break; | ||
295 | case 1: | ||
296 | if ((file->f_pos + offset) > gbFlashSize) { | ||
297 | ret = -EINVAL; | ||
298 | break; | ||
299 | } | ||
300 | if ((file->f_pos + offset) < 0) { | ||
301 | ret = -EINVAL; | ||
302 | break; | ||
303 | } | ||
304 | file->f_pos += offset; | ||
305 | ret = file->f_pos; | ||
306 | break; | ||
307 | default: | ||
308 | ret = -EINVAL; | ||
309 | } | ||
310 | mutex_unlock(&flash_mutex); | 281 | mutex_unlock(&flash_mutex); |
311 | return ret; | 282 | return ret; |
312 | } | 283 | } |