From: "Siddhartha Jain" <sid@netmagicsolutions.com>
To: <linux-fsdevel@vger.kernel.org>
Subject: Replicating directories - Intercepting write/modify system calls
Date: Thu, 12 Feb 2004 18:09:13 +0530 [thread overview]
Message-ID: <AGEEIPMDCDHNNJHJCJEGOEDKCAAA.sid@netmagicsolutions.com> (raw)
Hello,
I need a module/tool to replicate directories locally or across a network.
Locally, the master and the mirror directories may not belong to the same
FS. My immiediate need is to replicate a NFS-mounted directory to another
local/NFS directory. So here is what I figured:
1. A config file contains the master and mirror paths
2. Expand the vnode structure to include two things: a bit-flag to indicate
that the vnode has a replica and a pointer to the replica vnode.
3. When an open() is called,
a. check if the read/modify option is set in the open() (I am not
interested in replicating access-time at the moment).
b. If yes, check the path of the file against the known masters in the
config.
c. If it matches, copy the file to a destination specified by the mirror's
path.
d. Set the flag in the master vnode for replica and place a pointer to the
replica vnode in the master's structure.
e. After this replicate all write() calls for the master vnode to the
replica vnode.
f. close() the replica vnode when the master is close()-ed.
Being a sysadmin and not really a C/Kernel programmer, I do not know how
much is this feasible and practical.
Given that it is ok, how do I avoid the copy at open() and do only
incremental changes everytime a file is closed and re-opened.
Regards,
Siddhartha
next reply other threads:[~2004-02-12 12:44 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-12 12:39 Siddhartha Jain [this message]
2004-02-12 17:21 ` Replicating directories - Intercepting write/modify system calls Joseph D. Wagner
2004-02-13 5:00 ` Siddhartha Jain
2004-02-13 8:11 ` Joseph D. Wagner
2004-02-13 8:59 ` Siddhartha Jain
2004-02-14 13:08 ` Joseph D. Wagner
2004-02-13 14:34 ` Siddhartha Jain
2004-02-13 15:11 ` Akshat Aranya
2004-02-13 18:40 ` Herbert Poetzl
2004-02-15 8:06 ` Nir Tzachar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=AGEEIPMDCDHNNJHJCJEGOEDKCAAA.sid@netmagicsolutions.com \
--to=sid@netmagicsolutions.com \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.