Example #1
0
File: pfs.py Project: irachex/pyfs
 def sync(self):
     (serialized, imap_num) = inodemap.inodemap.save_inode_map(get_max_inode())
     special_inode = Inode()
     special_inode.write(0, serialized)
     imap_loc = inodemap.inodemap.lookup(special_inode.id)
     segment.segman.update_imap_postion(imap_loc, imap_num)
     segment.segman.flush()
Example #2
0
File: pfs.py Project: irachex/pyfs
 def sync(self):
     (serialized,
      imap_num) = inodemap.inodemap.save_inode_map(get_max_inode())
     special_inode = Inode()
     special_inode.write(0, serialized)
     imap_loc = inodemap.inodemap.lookup(special_inode.id)
     segment.segman.update_imap_postion(imap_loc, imap_num)
     segment.segman.flush()
Example #3
0
File: pfs.py Project: irachex/pyfs
 def unlink(self, path):
     filename = find_filename(path)
     parent_inode_no = self.search_dir(find_parent(path))
     parent_inode_block = inodemap.inodemap.lookup(parent_inode_no)
     parent_inode = Inode(data=segment.segman.block_read(parent_inode_block))
     parent_old_size = parent_inode.filesize
     parent_dir = Directory(parent_inode_no)
     found_entry = False
     entries = []
     for (name, inode) in parent_dir.enumerate():
         if found_entry:
             entries.append((name, inode))
         if name == filename:
             fount = True
             position = parent_dir.position - (FILENAMELEN + 4)
     for (name, inode) in entries:
         parent_inode.write(position, struct.pack("%dsI" % FILENAMELEN, name, inode))
         position += FILENAMELEN + 4
     parent_inode.filesize = parent_old_size - (FILENAMELEN + 4)
     inodemap.inodemap.update_inode(parent_inode_no, parent_inode.serialize())
Example #4
0
File: pfs.py Project: irachex/pyfs
 def unlink(self, path):
     filename = find_filename(path)
     parent_inode_no = self.search_dir(find_parent(path))
     parent_inode_block = inodemap.inodemap.lookup(parent_inode_no)
     parent_inode = Inode(
         data=segment.segman.block_read(parent_inode_block))
     parent_old_size = parent_inode.filesize
     parent_dir = Directory(parent_inode_no)
     found_entry = False
     entries = []
     for (name, inode) in parent_dir.enumerate():
         if found_entry:
             entries.append((name, inode))
         if name == filename:
             fount = True
             position = parent_dir.position - (FILENAMELEN + 4)
     for (name, inode) in entries:
         parent_inode.write(position,
                            struct.pack("%dsI" % FILENAMELEN, name, inode))
         position += (FILENAMELEN + 4)
     parent_inode.filesize = parent_old_size - (FILENAMELEN + 4)
     inodemap.inodemap.update_inode(parent_inode_no,
                                    parent_inode.serialize())