nfs-ganesha 1.4

posixdb_consistency.c

Go to the documentation of this file.
00001 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil; -*-
00002  * vim:expandtab:shiftwidth=4:tabstop=4:
00003  */
00004 #ifdef HAVE_CONFIG_H
00005 #include "config.h"
00006 #endif
00007 
00008 #include "posixdb_internal.h"
00009 #include "posixdb_consistency.h"
00010 #include <string.h>
00011 
00021 int fsal_posixdb_consistency_check(fsal_posixdb_fileinfo_t * p_info1,   /* IN */
00022                                    fsal_posixdb_fileinfo_t * p_info2 /* IN */ )
00023 {
00024   int out = 0;
00025 
00026   if(!p_info1 || !p_info2)
00027     return -1;
00028 
00029   if(isFullDebug(COMPONENT_FSAL))
00030     {
00031       if(p_info1->inode != p_info2->inode)
00032         LogFullDebug(COMPONENT_FSAL, "inode 1 <> inode 2 : %"PRIu64" != %"PRIu64"\n", p_info1->inode, p_info2->inode);
00033 
00034       if(p_info1->devid != p_info2->devid)
00035         LogFullDebug(COMPONENT_FSAL, "devid 1 <> devid 2 : %"PRIu64" != %"PRIu64"\n", p_info1->devid, p_info2->devid);
00036 
00037       if(p_info1->ftype != p_info2->ftype)
00038         LogFullDebug(COMPONENT_FSAL, "ftype 1 <> ftype 2 : %u != %u\n", p_info1->ftype, p_info2->ftype);
00039     }
00040 
00041   out |= (p_info1->inode && p_info2->inode) && (p_info1->inode != p_info2->inode);
00042   out |= (p_info1->devid && p_info2->devid) && (p_info1->devid != p_info2->devid);
00043   out |= (p_info1->ftype && p_info2->ftype) && (p_info1->ftype != p_info2->ftype);
00044 
00045   return out;
00046 }