CVS: intermezzo/intersync fileset.c,1.40,1.41 intersync.c,1.51,1.52 intersync.h,1.40,1.41

Chen Yang <[email protected]> Sat, 21 Jun 2003 19:05:49 -0700
Newsgroups gmane.comp.file-systems.intermezzo.cvs
Message-ID <[email protected]>
Update of /cvsroot/intermezzo/intermezzo/intersync
In directory sc8-pr-cvs1:/tmp/cvs-serv28314/intermezzo/intersync

Modified Files:
	fileset.c intersync.c intersync.h 
Log Message:
Troy Benjegerdes([email protected]) 's Data on Demand extension
Integrated by Chen Yang.


Index: fileset.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/intersync/fileset.c,v
retrieving revision 1.40
retrieving revision 1.41
diff -U2 -r1.40 -r1.41
--- fileset.c	23 Sep 2002 22:10:07 -0000	1.40
+++ fileset.c	22 Jun 2003 02:05:47 -0000	1.41
@@ -541,5 +541,6 @@
                                        struct is_peer *server,
                                        char *izo_dir,
-                                       char *fsetname)
+                                       char *fsetname,
+                                       int data_on_demand)
 {
         struct is_fileset * root_fset = NULL;
@@ -583,5 +584,9 @@
                 rep = is_replicator_lookup(root_fset, server);
                         
-                if (cache->cache_fstype == FSTYPE_VINTERMEZZO && 
+                if (cache->cache_fstype == FSTYPE_VINTERMEZZO)
+                        data_on_demand = 1;
+                
+                printf("is_client_init_fset: data_on_demand: %d\n", data_on_demand);
+                if (data_on_demand == 1 &&
                     izo_ioc_mark_fset(root_fset->fset_mtpt_fd, ~0, FSET_DATA_ON_DEMAND))
                         g_error("Unable to set FSET_DATA_ON_DEMAND: %s (%d).\n",
@@ -604,5 +609,6 @@
 struct is_fileset *is_fileset_initialize(struct is_cache *cache,
                                          struct is_peer *server,
-                                         char * fsetname)
+                                         char * fsetname,
+                                         int data_on_demand)
 {
         struct is_fileset *root_fset = NULL;
@@ -618,5 +624,6 @@
                 server->srv_cell->cell_root_fset_name = fsetname;
                 root_fset = is_client_init_fset(cache, server, izo_dir,
-                                                server->srv_cell->cell_root_fset_name);
+                                                server->srv_cell->cell_root_fset_name,
+                                                data_on_demand);
         }
         

Index: intersync.c
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/intersync/intersync.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -U2 -r1.51 -r1.52
--- intersync.c	12 Mar 2003 13:20:31 -0000	1.51
+++ intersync.c	22 Jun 2003 02:05:47 -0000	1.52
@@ -220,4 +220,5 @@
     --hoard=FILE          hoard the files listed in FILE\n\
     --reint               quit after reintegration and hoard is done\n\
+    --data_on_demand      force data on demand even on a ext3 filesystem\n\
     --daemon              run intersync as daemon process\n\
     --version             output version information and exit\n\
@@ -261,4 +262,6 @@
 #define OPT_DAEMON -11
                 {"daemon", no_argument, NULL, OPT_DAEMON},
+#define OPT_DATA_ON_DEMAND -12
+                {"data_on_demand", no_argument, NULL, OPT_DATA_ON_DEMAND},
                 {0}
         };
@@ -272,4 +275,5 @@
         cfg->cfg_reint_only = 0;
         cfg->cfg_daemon = 0;
+        cfg->cfg_data_on_demand = 0;
         cfg->cfg_clientid = NULL;
         cfg->cfg_fsetname = NULL;
@@ -313,4 +317,7 @@
                         cfg->cfg_daemon = 1;
                         break;
+                case OPT_DATA_ON_DEMAND:
+                        cfg->cfg_data_on_demand = 1;
+                        break;
                 case OPT_CLIENTID:
                         cfg->cfg_clientid = g_strdup(optarg);
@@ -398,4 +405,6 @@
         if (dst->cfg_local_port == -1)
                 dst->cfg_local_port = src->cfg_local_port;
+        if (dst->cfg_data_on_demand == -1)
+                dst->cfg_data_on_demand = src->cfg_data_on_demand;
         if (!dst->cfg_local_ip) {
                 dst->cfg_local_ip = src->cfg_local_ip;
@@ -419,4 +428,7 @@
                 cfg->cfg_local_ip = g_strdup(DEFAULT_LOCAL_IP);
         }
+        if (cfg->cfg_data_on_demand == -1) {  /* is this right???? */
+                cfg->cfg_data_on_demand = DEFAULT_DATA_ON_DEMAND;
+        }
         if (!cfg->cfg_fsetname && !cfg->cfg_server)
                 cfg->cfg_fsetname = g_strdup("rootfset");
@@ -601,5 +613,6 @@
                         g_error("Cannot connect to server.\n");
         }
-        fset = is_fileset_initialize(cache, server, cfg.cfg_fsetname);
+        fset = is_fileset_initialize(cache, server, cfg.cfg_fsetname,
+                                        cfg.cfg_data_on_demand);
         if (!fset)
                 is_die("failed to get root file set");

Index: intersync.h
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/intersync/intersync.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -U2 -r1.40 -r1.41
--- intersync.h	17 May 2002 00:38:10 -0000	1.40
+++ intersync.h	22 Jun 2003 02:05:47 -0000	1.41
@@ -24,5 +24,5 @@
 #define DEFAULT_CLIENT_PORT 2432
 #define DEFAULT_LOCAL_IP "*"
-
+#define DEFAULT_DATA_ON_DEMAND 0
 
 # define INTERSYNC_DEBUG
@@ -297,5 +297,5 @@
 void is_peer_destroy_rep(struct is_peer *peer);
 struct is_fileset *is_fileset_initialize(struct is_cache *, struct is_peer *, 
-                                         char *fsetname);
+                                         char *fsetname, int data_on_demand);
 struct is_peer *is_peer_set_uuid(struct is_peer *peer, uuid_t uuid);
 struct is_fileset *is_release_all_permits(struct intersync *is, 



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php