|
@@ -1556,7 +1556,7 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
|
|
|
struct inode *inode = file->f_path.dentry->d_inode;
|
|
|
|
|
|
mutex_lock(&inode->i_mutex);
|
|
|
- if (origin != SEEK_CUR || origin != SEEK_SET) {
|
|
|
+ if (origin != SEEK_CUR && origin != SEEK_SET) {
|
|
|
retval = fuse_update_attributes(inode, NULL, file, NULL);
|
|
|
if (retval)
|
|
|
goto exit;
|
|
@@ -1567,6 +1567,10 @@ static loff_t fuse_file_llseek(struct file *file, loff_t offset, int origin)
|
|
|
offset += i_size_read(inode);
|
|
|
break;
|
|
|
case SEEK_CUR:
|
|
|
+ if (offset == 0) {
|
|
|
+ retval = file->f_pos;
|
|
|
+ goto exit;
|
|
|
+ }
|
|
|
offset += file->f_pos;
|
|
|
break;
|
|
|
case SEEK_DATA:
|