]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/seq_file.c
reiserfs: Fix warning and inode leak when deleting inode with xattrs
[karo-tx-linux.git] / fs / seq_file.c
index f2bc3dfd0b883585e1a2afe6734de2db6be77004..38bb59f3f2add2aad3ad19af5086f00911ce2f66 100644 (file)
@@ -308,27 +308,27 @@ loff_t seq_lseek(struct file *file, loff_t offset, int whence)
        mutex_lock(&m->lock);
        m->version = file->f_version;
        switch (whence) {
-               case 1:
-                       offset += file->f_pos;
-               case 0:
-                       if (offset < 0)
-                               break;
-                       retval = offset;
-                       if (offset != m->read_pos) {
-                               while ((retval=traverse(m, offset)) == -EAGAIN)
-                                       ;
-                               if (retval) {
-                                       /* with extreme prejudice... */
-                                       file->f_pos = 0;
-                                       m->read_pos = 0;
-                                       m->version = 0;
-                                       m->index = 0;
-                                       m->count = 0;
-                               } else {
-                                       m->read_pos = offset;
-                                       retval = file->f_pos = offset;
-                               }
+       case SEEK_CUR:
+               offset += file->f_pos;
+       case SEEK_SET:
+               if (offset < 0)
+                       break;
+               retval = offset;
+               if (offset != m->read_pos) {
+                       while ((retval = traverse(m, offset)) == -EAGAIN)
+                               ;
+                       if (retval) {
+                               /* with extreme prejudice... */
+                               file->f_pos = 0;
+                               m->read_pos = 0;
+                               m->version = 0;
+                               m->index = 0;
+                               m->count = 0;
+                       } else {
+                               m->read_pos = offset;
+                               retval = file->f_pos = offset;
                        }
+               }
        }
        file->f_version = m->version;
        mutex_unlock(&m->lock);
@@ -339,7 +339,7 @@ EXPORT_SYMBOL(seq_lseek);
 /**
  *     seq_release -   free the structures associated with sequential file.
  *     @file: file in question
- *     @inode: file->f_path.dentry->d_inode
+ *     @inode: its inode
  *
  *     Frees the structures associated with sequential file; can be used
  *     as ->f_op->release() if you don't have private data to destroy.