[ofa-general] Re: [PATCH 1/3] osm: QoS- bug in opening policy file

Sasha Khapyorsky sashak at voltaire.com
Sat Oct 13 12:33:38 PDT 2007


Hi Yevgeny,

On 11:00 Tue 09 Oct     , Yevgeny Kliteynik wrote:
> Fixing bug in opening QoS policy file
> 
> Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
> ---
>  opensm/opensm/osm_qos_parser.y |    8 +++++---
>  1 files changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/opensm/opensm/osm_qos_parser.y b/opensm/opensm/osm_qos_parser.y
> index e0faaaf..8e9f282 100644
> --- a/opensm/opensm/osm_qos_parser.y
> +++ b/opensm/opensm/osm_qos_parser.y
> @@ -50,6 +50,7 @@
>  #include <stdlib.h>
>  #include <string.h>
>  #include <ctype.h>
> +#include <errno.h>
>  #include <sys/stat.h>
>  #include <opensm/osm_opensm.h>
>  #include <opensm/osm_qos_policy.h>
> @@ -129,6 +130,7 @@ extern char * __qos_parser_text;
>  extern void __qos_parser_error (char *s);
>  extern int __qos_parser_lex (void);
>  extern FILE * __qos_parser_in;
> +extern int errno;
> 
>  #define RESET_BUFFER  __parser_tmp_struct_reset()
> 
> @@ -1750,13 +1752,13 @@ int osm_qos_parse_policy_file(IN osm_subn_t * const p_subn)
>      osm_qos_policy_destroy(p_subn->p_qos_policy);
>      p_subn->p_qos_policy = NULL;
> 
> -    if (!stat(p_subn->opt.qos_policy_file, &statbuf)) {
> +    if (stat(p_subn->opt.qos_policy_file, &statbuf)) {

Why this stat() check is needed at all? Right after this there are
fopen() - all checks could be done according to status there, right?

Sasha

> 
>          if (strcmp(p_subn->opt.qos_policy_file,OSM_DEFAULT_QOS_POLICY_FILE)) {
>              osm_log(p_qos_parser_osm_log, OSM_LOG_ERROR,
>                      "osm_qos_parse_policy_file: ERR AC01: "
> -                    "QoS policy file not found (%s)\n",
> -                    p_subn->opt.qos_policy_file);
> +                    "Failed opening QoS policy file %s - %s\n",
> +                    p_subn->opt.qos_policy_file, strerror(errno));
>              res = 1;
>          }
>          else
> -- 
> 1.5.1.4
> 
> 



More information about the general mailing list