History

cmdfilter: extend default read filter

This patch adds the commands that the former sg filter allowed for read access to the cmdfilter to keep userspace apps that rely on them working.

Adel Gadllah committed 18 years ago

Commit 06a452e1 parent 2b272d42 files · +9 −4Browse files

Unified · Split

2 files
  1. block/cmd-filter.c +9 −0
  2. drivers/scsi/sg.c +0 −4
block/cmd-filter.c+9−0
@@ -219,6 +219,10 @@ static struct kobj_type rcf_ktype = { · 218 unmodified lines
219219 .default_attrs = default_attrs,
220220 };
221221
222+#ifndef MAINTENANCE_IN_CMD
223+#define MAINTENANCE_IN_CMD 0xa3
224+#endif
225+
222226 static void rcf_set_defaults(struct blk_scsi_cmd_filter *filter)
223227 {
224228 /* Basic read-only commands */
@@ -230,6 +234,7 @@ static void rcf_set_defaults(struct blk_scsi_cmd_filter *filter) · 5 unmodified lines
230234 __set_bit(READ_16, filter->read_ok);
231235 __set_bit(READ_BUFFER, filter->read_ok);
232236 __set_bit(READ_DEFECT_DATA, filter->read_ok);
237+ __set_bit(READ_CAPACITY, filter->read_ok);
233238 __set_bit(READ_LONG, filter->read_ok);
234239 __set_bit(INQUIRY, filter->read_ok);
235240 __set_bit(MODE_SENSE, filter->read_ok);
@@ -238,6 +243,10 @@ static void rcf_set_defaults(struct blk_scsi_cmd_filter *filter) · 2 unmodified lines
238243 __set_bit(START_STOP, filter->read_ok);
239244 __set_bit(GPCMD_VERIFY_10, filter->read_ok);
240245 __set_bit(VERIFY_16, filter->read_ok);
246+ __set_bit(REPORT_LUNS, filter->read_ok);
247+ __set_bit(SERVICE_ACTION_IN, filter->read_ok);
248+ __set_bit(RECEIVE_DIAGNOSTIC, filter->read_ok);
249+ __set_bit(MAINTENANCE_IN_CMD, filter->read_ok);
241250 __set_bit(GPCMD_READ_BUFFER_CAPACITY, filter->read_ok);
242251
243252 /* Audio CD commands */
drivers/scsi/sg.c+0−4
@@ -2502,10 +2502,6 @@ sg_page_free(struct page *page, int size) · 2501 unmodified lines
25022502 __free_pages(page, order);
25032503 }
25042504
2505−#ifndef MAINTENANCE_IN_CMD
2506−#define MAINTENANCE_IN_CMD 0xa3
2507−#endif
2508−
25092505 #ifdef CONFIG_SCSI_PROC_FS
25102506 static int
25112507 sg_idr_max_id(int id, void *p, void *data)