diff options
Diffstat (limited to 'fs/read_write.c')
| -rw-r--r-- | fs/read_write.c | 12 | 
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index 5907b49e4d7..179f1c33ea5 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -166,8 +166,10 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)  			 * long as offset isn't at the end of the file then the  			 * offset is data.  			 */ -			if (offset >= inode->i_size) -				return -ENXIO; +			if (offset >= inode->i_size) { +				retval = -ENXIO; +				goto out; +			}  			break;  		case SEEK_HOLE:  			/* @@ -175,8 +177,10 @@ loff_t default_llseek(struct file *file, loff_t offset, int origin)  			 * as long as offset isn't i_size or larger, return  			 * i_size.  			 */ -			if (offset >= inode->i_size) -				return -ENXIO; +			if (offset >= inode->i_size) { +				retval = -ENXIO; +				goto out; +			}  			offset = inode->i_size;  			break;  	}  |