• Chuck Lever's avatar
    NFS: More "sloppy" parsing problems · a5a16bae
    Chuck Lever authored
    Specifying "port=-5" with the kernel's current mount option parser
    generates "unrecognized mount option".  If "sloppy" is set, this
    causes the mount to succeed and use the default values; the desired
    behavior is that, since this is a valid option with an invalid value,
    the mount should fail, even with "sloppy."
    
    To properly handle "sloppy" parsing, we need to distinguish between
    correct options with invalid values, and incorrect options.  We will
    need to parse integer values by hand, therefore, and not rely on
    match_token().
    
    For instance, these must all fail with "invalid value":
    
    	port=12345678
    	port=-5
    	port=samuel
    
    and not with "unrecognized option," as they do currently.
    
    Thus, for the sake of match_token() we need to treat the values for
    these options as strings, and do the conversion to integers using
    strict_strtol().
    
    This is basically the same solution we used for the earlier "retry="
    fix (commit ecbb3845), except in this case the kernel actually has to
    parse the value, rather than ignore it.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    a5a16bae
super.c 66.5 KB