anchor.diff:      end).
   
   
  +p_unlink(ParentInode, Filename) ->
  +    mnesia:activity(transaction, fun()->
  +        case mnesia:read(edfs_rec, ParentInode) of
  +            [Parent=#edfs_rec{type=directory, children=Children}] ->
  +                Children2 = gb_trees:delete(Filename, Children),
  +                mnesia:write(Parent#edfs_rec{children=Children2});
  +            _ -> ok
  +        end
  +    end).
  +
  +
  +p_link(ParentInode, Rec={Filename, Inode}) ->
  +    mnesia:activity(transaction, fun()->
  +        case mnesia:read(edfs_rec, ParentInode) of
  +            [Parent=#edfs_rec{type=directory, children=Children}] ->
  +                Children2 = gb_trees:insert(Filename, Inode, Children),
  +                mnesia:write(Parent#edfs_rec{children=Children2});
  +            _ -> ok
  +        end
  +    end).
  +
  +
   p_each_children(F,Children) ->
       Iter = gb_trees:iterator(Children),
       p_each_iter(F,gb_trees:next(Iter)).
  
positive.code:             end;
          _ -> {error, enoent}
      end.
  p_unlink(ParentInode, Filename) ->
      mnesia:activity(transaction, fun()->
          case mnesia:read(edfs_rec, ParentInode) of
              [Parent=#edfs_rec{type=directory, children=Children}] ->
                  Children2 = gb_trees:delete(Filename, Children),
                  mnesia:write(Parent#edfs_rec{children=Children2});
              _ -> ok
          end
      end).
  p_rmf(Inode) ->
      case mnesia:dirty_read(edfs_rec, Inode) of
          [#edfs_rec{type=directory, children=Children}] ->
  
negative.code:     DestParts = filename:split(DestPath),
      {SrcParentParts,[SrcFilename]} = lists:split(length(SrcParts)-1, SrcParts),
      {DestParentParts,[DestFilename]} = lists:split(length(DestParts)-1, DestParts),
      mnesia:activity(transaction, fun()->
          case {p_get_inode(SrcParentParts), p_get_inode(SrcPath)} of
              {{ok, SrcParentInode},{ok, SrcInode}} ->
                  case p_get_inode(DestParentParts) of
  