• J
    blkdebug: fix "once" rule · a069e2f1
    John Snow 提交于
    Background:
      The blkdebug scripts are currently engineered so that when a debug
    event occurs, a prefilter browses a master list of parsed rules for a
    certain event and adds them to an "active list" of rules to be used for
    the forthcoming action, provided the events and state numbers match.
    
      Then, once the request is received, the last active rule is used to
    inject an error if certain parameters match.
    
      This active list is cleared every time the prefilter injects a new
    rule for the first time during a debug event.
    
      The "once" rule currently causes the error injection, if it is
    triggered, to only clear the active list. This is insufficient for
    preventing future injections of the same rule.
    
    Remedy:
      This patch /deletes/ the rule from the list that the prefilter
    browses, so it is gone for good. In V2, we remove only the rule of
    interest from the active list instead of allowing the "once" rule to
    clear the entire list of active rules.
    
    Impact:
      This affects iotests 026. Several ENOSPC tests that used "once" can
    be seen to have output that shows multiple failure messages. After
    this patch, the error messages tend to be smaller and less severe, but
    the injection can still be seen to be working. I have patched the
    expected output to expect the smaller error messages.
    Signed-off-by: NJohn Snow <jsnow@redhat.com>
    Message-id: 1423257977-25630-1-git-send-email-jsnow@redhat.com
    Reviewed-by: NMax Reitz <mreitz@redhat.com>
    Signed-off-by: NMax Reitz <mreitz@redhat.com>
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    a069e2f1
blkdebug.c 22.5 KB