usb-storage: switch to ->show_info()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 31 Mar 2013 05:37:13 +0000 (01:37 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:13:17 +0000 (14:13 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/usb/storage/scsiglue.c

index 92f35ab..615c66e 100644 (file)
@@ -438,22 +438,21 @@ void usb_stor_report_bus_reset(struct us_data *us)
  * /proc/scsi/ functions
  ***********************************************************************/
 
+static int write_info(struct Scsi_Host *host, char *buffer, int length)
+{
+       /* if someone is sending us data, just throw it away */
+       return length;
+}
+
 /* we use this macro to help us write into the buffer */
 #undef SPRINTF
-#define SPRINTF(args...) \
-       do { if (pos < buffer+length) pos += sprintf(pos, ## args); } while (0)
+#define SPRINTF(args...) seq_printf(m, ## args)
 
-static int proc_info (struct Scsi_Host *host, char *buffer,
-               char **start, off_t offset, int length, int inout)
+static int show_info (struct seq_file *m, struct Scsi_Host *host)
 {
        struct us_data *us = host_to_us(host);
-       char *pos = buffer;
        const char *string;
 
-       /* if someone is sending us data, just throw it away */
-       if (inout)
-               return length;
-
        /* print the controller name */
        SPRINTF("   Host scsi%d: usb-storage\n", host->host_no);
 
@@ -483,28 +482,14 @@ static int proc_info (struct Scsi_Host *host, char *buffer,
        SPRINTF("    Transport: %s\n", us->transport_name);
 
        /* show the device flags */
-       if (pos < buffer + length) {
-               pos += sprintf(pos, "       Quirks:");
+       SPRINTF("       Quirks:");
 
 #define US_FLAG(name, value) \
-       if (us->fflags & value) pos += sprintf(pos, " " #name);
+       if (us->fflags & value) seq_printf(m, " " #name);
 US_DO_ALL_FLAGS
 #undef US_FLAG
-
-               *(pos++) = '\n';
-       }
-
-       /*
-        * Calculate start of next buffer, and return value.
-        */
-       *start = buffer + offset;
-
-       if ((pos - buffer) < offset)
-               return (0);
-       else if ((pos - buffer - offset) < length)
-               return (pos - buffer - offset);
-       else
-               return (length);
+       seq_putc(m, '\n');
+       return 0;
 }
 
 /***********************************************************************
@@ -549,7 +534,8 @@ struct scsi_host_template usb_stor_host_template = {
        /* basic userland interface stuff */
        .name =                         "usb-storage",
        .proc_name =                    "usb-storage",
-       .proc_info =                    proc_info,
+       .show_info =                    show_info,
+       .write_info =                   write_info,
        .info =                         host_info,
 
        /* command interface -- queued only */