Fix typos in Documentation/filesystems/seq_file.txt
[sfrench/cifs-2.6.git] / Documentation / filesystems / seq_file.txt
index 92975ee7942cb37551aced14be9da5e2e517a582..7fb8e6dc62bfb596032725264c3b911a0cca2b2b 100644 (file)
@@ -92,7 +92,7 @@ implementations; in most cases the start() function should check for a
 "past end of file" condition and return NULL if need be.
 
 For more complicated applications, the private field of the seq_file
-structure can be used. There is also a special value whch can be returned
+structure can be used. There is also a special value which can be returned
 by the start() function called SEQ_START_TOKEN; it can be used if you wish
 to instruct your show() function (described below) to print a header at the
 top of the output. SEQ_START_TOKEN should only be used if the offset is
@@ -107,8 +107,8 @@ complete. Here's the example version:
 
        static void *ct_seq_next(struct seq_file *s, void *v, loff_t *pos)
        {
-               loff_t *spos = (loff_t *) v;
-               *pos = ++(*spos);
+               loff_t *spos = v;
+               *pos = ++*spos;
                return spos;
        }
 
@@ -127,8 +127,8 @@ something goes wrong. The example module's show() function is:
 
        static int ct_seq_show(struct seq_file *s, void *v)
        {
-               loff_t *spos = (loff_t *) v;
-               seq_printf(s, "%Ld\n", *spos);
+               loff_t *spos = v;
+               seq_printf(s, "%lld\n", (long long)*spos);
                return 0;
        }
 
@@ -136,7 +136,7 @@ We will look at seq_printf() in a moment. But first, the definition of the
 seq_file iterator is finished by creating a seq_operations structure with
 the four functions we have just defined:
 
-       static struct seq_operations ct_seq_ops = {
+       static const struct seq_operations ct_seq_ops = {
                .start = ct_seq_start,
                .next  = ct_seq_next,
                .stop  = ct_seq_stop,
@@ -146,7 +146,7 @@ the four functions we have just defined:
 This structure will be needed to tie our iterator to the /proc file in
 a little bit.
 
-It's worth noting that the interator value returned by start() and
+It's worth noting that the iterator value returned by start() and
 manipulated by the other functions is considered to be completely opaque by
 the seq_file code. It can thus be anything that is useful in stepping
 through the data to be output. Counters can be useful, but it could also be
@@ -204,7 +204,7 @@ line, as in the example module:
        static int ct_open(struct inode *inode, struct file *file)
        {
                return seq_open(file, &ct_seq_ops);
-       };
+       }
 
 Here, the call to seq_open() takes the seq_operations structure we created
 before, and gets set up to iterate through the virtual file.
@@ -219,7 +219,7 @@ The other operations of interest - read(), llseek(), and release() - are
 all implemented by the seq_file code itself. So a virtual file's
 file_operations structure will look like:
 
-       static struct file_operations ct_file_ops = {
+       static const struct file_operations ct_file_ops = {
                .owner   = THIS_MODULE,
                .open    = ct_open,
                .read    = seq_read,
@@ -262,7 +262,7 @@ routines useful:
 
 These helpers will interpret pos as a position within the list and iterate
 accordingly.  Your start() and next() functions need only invoke the
-seq_list_* helpers with a pointer to the appropriate list_head structure.  
+seq_list_* helpers with a pointer to the appropriate list_head structure.
 
 
 The extra-simple version