[prev in list] [next in list] [prev in thread] [next in thread] 

List:       intermezzo-cvs
Subject:    CVS: intermezzo/presto24/linux intermezzo_upcall.h,1.4.2.1,1.4.2.2
From:       Phil Schwan <pschwan () users ! sourceforge ! net>
Date:       2001-10-24 1:30:36
[Download RAW message or body]

Update of /cvsroot/intermezzo/intermezzo/presto24/linux
In directory usw-pr-cvs1:/tmp/cvs-serv19080/presto24/linux

Modified Files:
      Tag: b_kml_trunc_merge
	intermezzo_upcall.h 
Log Message:
Summary:
- major bug fixes; asymptotically approaching stable kml truncation
- additional permit grabbing/revoking bits to prohibit modifications by any
client during KML truncation
- bring recent trunk changes onto the branch (UUID, SysID, replicator.db)

- Lento/InterMezzo/UpcallHandler.pm (KML_Truncate): before we complete the
upcall, start a revoke_permit(), and ask to be notified when the kernel
releases it.  Also, set fset->{sync_session} so that we don't immediately give
the permit away again.  Hold this permit for the entire kml truncation process,
and only delete fset->{sync_session} when the final ioctl() returns.

Also, now that we update last_rcvd when we receive confirmation packets, use
that to determine at what offset to truncate the KML.

- presto24/journal.c (presto_reserve_record): don't add fset_kml_logical_off
  unless rec->is_kml is true
- presto24/journal.c: a number of places were checking for (handle != NULL)
instaed of IS_ERR(handle) following a presto_trans_start(); fixed.
- presto24/journal.c (presto_finish_kml_truncate): cleaned up the error
  handling code to properly commit before exiting
- presto24/journal.c
- presto24/journal.c (presto_kml_truncate): call presto_get_permit() before
  the kml_truncate upcall, and presto_put_permit() afterwards.  By that point,
  userspace should be the only permitholder.
- presto24/journal.c (presto_log): only subtract fset_kml_logical_off from the
  write offset if rec->is_kml
- presto24/journal_ext3.c (presto_e3_trans_start): tweaked jblocks when op ==
  PRESTO_OP_KML_TRUNC; probably still incorrect, but closer, I think.
- presto24/presto.c (lento_cancel_lml): another s/!handle/IS_ERR(handle)/
- presto24/linux/intermezzo_upcall.h: in struct lento_kml_in, length was
  supposed to be 64 bits, not offset.  oops.


Index: intermezzo_upcall.h
===================================================================
RCS file: /cvsroot/intermezzo/intermezzo/presto24/linux/intermezzo_upcall.h,v
retrieving revision 1.4.2.1
retrieving revision 1.4.2.2
diff -U2 -r1.4.2.1 -r1.4.2.2
--- intermezzo_upcall.h	2001/10/15 21:28:33	1.4.2.1
+++ intermezzo_upcall.h	2001/10/24 01:30:34	1.4.2.2
@@ -79,7 +79,7 @@
 struct lento_kml_in {
         struct lento_up_hdr uh;
-        loff_t offset;
+        unsigned int offset;
         unsigned int first_recno;
-        unsigned int length;
+        loff_t length;
         unsigned int last_recno;
         int namelen;


_______________________________________________
intermezzo-commit mailing list
intermezzo-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/intermezzo-commit

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic