Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

scsi_debug: switch to ->show_info()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro c8ed555a cac19703

+21 -32
+21 -32
drivers/scsi/scsi_debug.c
··· 2823 2823 /* scsi_debug_proc_info 2824 2824 * Used if the driver currently has no own support for /proc/scsi 2825 2825 */ 2826 - static int scsi_debug_proc_info(struct Scsi_Host *host, char *buffer, char **start, off_t offset, 2827 - int length, int inout) 2826 + static int scsi_debug_write_info(struct Scsi_Host *host, char *buffer, int length) 2828 2827 { 2829 - int len, pos, begin; 2830 - int orig_length; 2828 + char arr[16]; 2829 + int opts; 2830 + int minLen = length > 15 ? 15 : length; 2831 2831 2832 - orig_length = length; 2832 + if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO)) 2833 + return -EACCES; 2834 + memcpy(arr, buffer, minLen); 2835 + arr[minLen] = '\0'; 2836 + if (1 != sscanf(arr, "%d", &opts)) 2837 + return -EINVAL; 2838 + scsi_debug_opts = opts; 2839 + if (scsi_debug_every_nth != 0) 2840 + scsi_debug_cmnd_count = 0; 2841 + return length; 2842 + } 2833 2843 2834 - if (inout == 1) { 2835 - char arr[16]; 2836 - int minLen = length > 15 ? 15 : length; 2837 - 2838 - if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RAWIO)) 2839 - return -EACCES; 2840 - memcpy(arr, buffer, minLen); 2841 - arr[minLen] = '\0'; 2842 - if (1 != sscanf(arr, "%d", &pos)) 2843 - return -EINVAL; 2844 - scsi_debug_opts = pos; 2845 - if (scsi_debug_every_nth != 0) 2846 - scsi_debug_cmnd_count = 0; 2847 - return length; 2848 - } 2849 - begin = 0; 2850 - pos = len = sprintf(buffer, "scsi_debug adapter driver, version " 2844 + static int scsi_debug_show_info(struct seq_file *m, struct Scsi_Host *host) 2845 + { 2846 + seq_printf(m, "scsi_debug adapter driver, version " 2851 2847 "%s [%s]\n" 2852 2848 "num_tgts=%d, shared (ram) size=%d MB, opts=0x%x, " 2853 2849 "every_nth=%d(curr:%d)\n" ··· 2858 2862 scsi_debug_sector_size, sdebug_cylinders_per, sdebug_heads, 2859 2863 sdebug_sectors_per, num_aborts, num_dev_resets, num_bus_resets, 2860 2864 num_host_resets, dix_reads, dix_writes, dif_errors); 2861 - if (pos < offset) { 2862 - len = 0; 2863 - begin = pos; 2864 - } 2865 - *start = buffer + (offset - begin); /* Start of wanted data */ 2866 - len -= (offset - begin); 2867 - if (len > length) 2868 - len = length; 2869 - return len; 2865 + return 0; 2870 2866 } 2871 2867 2872 2868 static ssize_t sdebug_delay_show(struct device_driver * ddp, char * buf) ··· 3945 3957 static DEF_SCSI_QCMD(scsi_debug_queuecommand) 3946 3958 3947 3959 static struct scsi_host_template sdebug_driver_template = { 3948 - .proc_info = scsi_debug_proc_info, 3960 + .show_info = scsi_debug_show_info, 3961 + .write_info = scsi_debug_write_info, 3949 3962 .proc_name = sdebug_proc_name, 3950 3963 .name = "SCSI DEBUG", 3951 3964 .info = scsi_debug_info,