Commit 22735068d53c7115e384bc88dea95b17e76a6839
Committed by
Al Viro
1 parent
06222e491e
Exists in
master
and in
6 other branches
drivers: fix up various ->llseek() implementations
Fix up a few ->llseek() implementations that won't deal with SEEK_HOLE/SEEK_DATA properly. Make them future proof so that if we ever add new options they will return -EINVAL. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Showing 4 changed files with 14 additions and 0 deletions Side-by-side Diff
drivers/char/generic_nvram.c
... | ... | @@ -34,12 +34,16 @@ |
34 | 34 | static loff_t nvram_llseek(struct file *file, loff_t offset, int origin) |
35 | 35 | { |
36 | 36 | switch (origin) { |
37 | + case 0: | |
38 | + break; | |
37 | 39 | case 1: |
38 | 40 | offset += file->f_pos; |
39 | 41 | break; |
40 | 42 | case 2: |
41 | 43 | offset += nvram_len; |
42 | 44 | break; |
45 | + default: | |
46 | + offset = -1; | |
43 | 47 | } |
44 | 48 | if (offset < 0) |
45 | 49 | return -EINVAL; |
drivers/char/nvram.c
drivers/char/ps3flash.c
... | ... | @@ -101,12 +101,16 @@ |
101 | 101 | |
102 | 102 | mutex_lock(&file->f_mapping->host->i_mutex); |
103 | 103 | switch (origin) { |
104 | + case 0: | |
105 | + break; | |
104 | 106 | case 1: |
105 | 107 | offset += file->f_pos; |
106 | 108 | break; |
107 | 109 | case 2: |
108 | 110 | offset += dev->regions[dev->region_idx].size*dev->blk_size; |
109 | 111 | break; |
112 | + default: | |
113 | + offset = -1; | |
110 | 114 | } |
111 | 115 | if (offset < 0) { |
112 | 116 | res = -EINVAL; |
drivers/macintosh/nvram.c
... | ... | @@ -21,12 +21,16 @@ |
21 | 21 | static loff_t nvram_llseek(struct file *file, loff_t offset, int origin) |
22 | 22 | { |
23 | 23 | switch (origin) { |
24 | + case 0: | |
25 | + break; | |
24 | 26 | case 1: |
25 | 27 | offset += file->f_pos; |
26 | 28 | break; |
27 | 29 | case 2: |
28 | 30 | offset += NVRAM_SIZE; |
29 | 31 | break; |
32 | + default: | |
33 | + offset = -1; | |
30 | 34 | } |
31 | 35 | if (offset < 0) |
32 | 36 | return -EINVAL; |