Messages in this thread | | | Date | Tue, 24 Mar 2009 11:49:38 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [PATCH 5/5] blktrace: print human-readable act_mask |
| |
On Tue, 24 Mar 2009, Li Zefan wrote: > > +static ssize_t blk_trace_mask2str(char *buf, int mask) > +{ > + int i; > + char *p = buf; > + > + for (i = 0; i < ARRAY_SIZE(mask_maps); i++) { > + if (mask & mask_maps[i].mask) { > + p += sprintf(p, "%s%s", > + (p == buf) ? "" : ",", mask_maps[i].str); > + } > + } > + *p++ = '\n'; > + > + return (p - buf); > +} > + > static struct request_queue *blk_trace_get_queue(struct block_device *bdev) > { > if (bdev->bd_disk == NULL) > @@ -1399,7 +1423,7 @@ static ssize_t sysfs_blk_trace_attr_show(struct device *dev, > if (q->blk_trace == NULL) > ret = sprintf(buf, "disabled\n"); > else if (attr == &dev_attr_act_mask) > - ret = sprintf(buf, "%#x\n", q->blk_trace->act_mask); > + ret = blk_trace_mask2str(buf, q->blk_trace->act_mask); > else if (attr == &dev_attr_pid) > ret = sprintf(buf, "%u\n", q->blk_trace->pid); > else if (attr == &dev_attr_start_lba) > @@ -1432,9 +1456,11 @@ static ssize_t sysfs_blk_trace_attr_store(struct device *dev, > if (attr == &dev_attr_act_mask) { > if (sscanf(buf, "%llx", &value) != 1) { > /* Assume it is a list of trace category names */ > - value = blk_str2act_mask(buf); > - if (value < 0) > + value = blk_trace_str2mask(buf);
Hmm, does this compile? Doesn't blk_trace_str2mask need two parameters?
-- Steve
> + if (value < 0) { > + ret = value; > goto out; > + } > } > } else if (sscanf(buf, "%llu", &value) != 1) > goto out; > -- > 1.5.4.rc3 > >
| |