From mboxrd@z Thu Jan 1 00:00:00 1970 From: Josef Bacik Subject: [PATCH 5/5] drivers: fix up various ->llseek() implementations Date: Mon, 18 Jul 2011 13:21:39 -0400 Message-ID: <1311009699-18882-5-git-send-email-josef@redhat.com> References: <1311009699-18882-1-git-send-email-josef@redhat.com> To: linux-fsdevel@vger.kernel.org, viro@ZenIV.linux.org.uk Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58448 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754081Ab1GRRVn (ORCPT ); Mon, 18 Jul 2011 13:21:43 -0400 In-Reply-To: <1311009699-18882-1-git-send-email-josef@redhat.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: 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 --- drivers/char/generic_nvram.c | 4 ++++ drivers/char/nvram.c | 2 ++ drivers/char/ps3flash.c | 4 ++++ drivers/macintosh/nvram.c | 4 ++++ 4 files changed, 14 insertions(+), 0 deletions(-) diff --git a/drivers/char/generic_nvram.c b/drivers/char/generic_nvram.c index 0e941b5..6c4f4b5 100644 --- a/drivers/char/generic_nvram.c +++ b/drivers/char/generic_nvram.c @@ -34,12 +34,16 @@ static ssize_t nvram_len; static loff_t nvram_llseek(struct file *file, loff_t offset, int origin) { switch (origin) { + case 0: + break; case 1: offset += file->f_pos; break; case 2: offset += nvram_len; break; + default: + offset = -1; } if (offset < 0) return -EINVAL; diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c index 166f1e7..da3cfee 100644 --- a/drivers/char/nvram.c +++ b/drivers/char/nvram.c @@ -224,6 +224,8 @@ static loff_t nvram_llseek(struct file *file, loff_t offset, int origin) case 2: offset += NVRAM_BYTES; break; + default: + return -EINVAL; } return (offset >= 0) ? (file->f_pos = offset) : -EINVAL; diff --git a/drivers/char/ps3flash.c b/drivers/char/ps3flash.c index 85c004a..5a06787 100644 --- a/drivers/char/ps3flash.c +++ b/drivers/char/ps3flash.c @@ -101,12 +101,16 @@ static loff_t ps3flash_llseek(struct file *file, loff_t offset, int origin) mutex_lock(&file->f_mapping->host->i_mutex); switch (origin) { + case 0: + break; case 1: offset += file->f_pos; break; case 2: offset += dev->regions[dev->region_idx].size*dev->blk_size; break; + default: + offset = -1; } if (offset < 0) { res = -EINVAL; diff --git a/drivers/macintosh/nvram.c b/drivers/macintosh/nvram.c index a271c82..f0e03e7 100644 --- a/drivers/macintosh/nvram.c +++ b/drivers/macintosh/nvram.c @@ -21,12 +21,16 @@ static loff_t nvram_llseek(struct file *file, loff_t offset, int origin) { switch (origin) { + case 0: + break; case 1: offset += file->f_pos; break; case 2: offset += NVRAM_SIZE; break; + default: + offset = -1; } if (offset < 0) return -EINVAL; -- 1.7.5.2