由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 大家能帮我看一下下面的问题吗,不胜感激。
相关主题
Symbolic Link: ln 和 cp -s 是一样的么?问个firewall(iptables)的问题
SSA, 能不能讲一下 inode为啥 inode-cache 的内存算在 used 里面,不算在 cached 里面呢?
Server efficiency用一个linux系统读一个linux硬盘,被读的硬盘会留痕迹吗
想修改buffer cache的内核代码?请问从哪开始Linux的文件ACL信息存在什么地方的?
奇怪的df并口驱动的一个问题 (转载)
急问:linux 2.6 里,如何从inode得到ext2_inode_info?怎么获取一个ext4的disk image所含的文件列表
求教网卡设置问题ls -l 显示一堆 ??? 的咋整啊?
为啥用mmap访问文件的效率高呢?有没有可能写个ftp的脚本?
相关话题的讨论汇总
话题: dentry话题: nfs话题: nfsmnt话题: sdentry话题: silly
进入Linux版参与讨论
1 (共1页)
w****2
发帖数: 2
1
很冒昧的打扰大家。大家能帮我看一下下面的问题吗,不胜感激。
问题是这样的,在生产环境下
1、Suse的Linux有 /nfsmnt/work_pub/web 文件夹和 /nfsmnt/work_inwork/web
文件夹 ,它们都是NFS文件挂载
2、机器上有多个进程会读写/nfsmnt/work_pub/web 文件夹的内容
3、cron会周期性的 删除/nfsmnt/work_pub/web 文件夹下所有文件,并把/nfsmnt/
work_inwork/web 文件夹下的所有内容拷贝到前面那个文件夹中
这样,完全删除/nfsmnt/work_pub/web 文件夹下所有文件的时候就会有.nfs文件删除
不掉(上面的流程因为某些问题不方便改动)。
想咨询的问题是:我现在能不能修改一下fs/nfs/dir.c 中 nfs_sillyrename这个方法
,把所有.nfs文件生成到/nfsmnt/temp目录下,然后重新编译内核解决上面的问题?期
待大家的指点,先谢谢了。
下面是源代码
static int nfs_sillyrename(struct inode *dir, struct dentry *dentry)
{
static unsigned int sillycounter;
const int i_inosize = sizeof(dir->i_ino)*2;
const int countersize = sizeof(sillycounter)*2;
const int slen = strlen(".nfs") + i_inosize + countersize;
char silly[slen+1];
struct qstr qsilly;
struct dentry *sdentry;
int error = -EIO;
dfprintk(VFS, "NFS: silly-rename(%s/%s, ct=%d)\n",
dentry->d_parent->d_name.name, dentry->d_name.name,
atomic_read(&dentry->d_count));
if (atomic_read(&dentry->d_count) == 1)
goto out; /* No need to silly rename. */
#ifdef NFS_PARANOIA
if (!dentry->d_inode)
printk("NFS: silly-renaming %s/%s, negative dentry??\n",
dentry->d_parent->d_name.name, dentry->d_name.name);
#endif
/*
* We don't allow a dentry to be silly-renamed twice.
*/
error = -EBUSY;
if (dentry->d_flags & DCACHE_NFSFS_RENAMED)
goto out;
sprintf(silly, ".nfs%*.*lx",
i_inosize, i_inosize, dentry->d_inode->i_ino);
sdentry = NULL;
do {
char *suffix = silly + slen - countersize;
dput(sdentry);
sillycounter++;
sprintf(suffix, "%*.*x", countersize, countersize, sillycounter);
dfprintk(VFS, "trying to rename %s to %s\n",
dentry->d_name.name, silly);
sdentry = lookup_one(silly, dentry->d_parent);
/*
* N.B. Better to return EBUSY here ... it could be
* dangerous to delete the file while it's in use.
*/
if (IS_ERR(sdentry))
goto out;
} while(sdentry->d_inode != NULL); /* need negative lookup */
nfs_zap_caches(dir);
qsilly.name = silly;
qsilly.len = strlen(silly);
error = NFS_PROTO(dir)->rename(dir, &dentry->d_name, dir, &qsilly); //可否
修改 此处代码来解决问题
if (!error) {
nfs_renew_times(dentry);
d_move(dentry, sdentry);
error = nfs_async_unlink(dentry);
/* If we return 0 we don't unlink */
}
dput(sdentry);
out:
return error;
}
y***d
发帖数: 2330
2
能不能这样
mv /nfsmnt/work_pub/web /nfsmnt/work_pub/web.old.timestamp
mv /nfsmnt/work_inwork/web /nfsmnt/work_pub/web
或者
mv /nfsmnt/work_pub/web/* /nfsmnt/work_pub/web.old.timestamp/
mv /nfsmnt/work_inwork/web/* /nfsmnt/work_pub/web/

nfsmnt/

【在 w****2 的大作中提到】
: 很冒昧的打扰大家。大家能帮我看一下下面的问题吗,不胜感激。
: 问题是这样的,在生产环境下
: 1、Suse的Linux有 /nfsmnt/work_pub/web 文件夹和 /nfsmnt/work_inwork/web
: 文件夹 ,它们都是NFS文件挂载
: 2、机器上有多个进程会读写/nfsmnt/work_pub/web 文件夹的内容
: 3、cron会周期性的 删除/nfsmnt/work_pub/web 文件夹下所有文件,并把/nfsmnt/
: work_inwork/web 文件夹下的所有内容拷贝到前面那个文件夹中
: 这样,完全删除/nfsmnt/work_pub/web 文件夹下所有文件的时候就会有.nfs文件删除
: 不掉(上面的流程因为某些问题不方便改动)。
: 想咨询的问题是:我现在能不能修改一下fs/nfs/dir.c 中 nfs_sillyrename这个方法

f******y
发帖数: 2971
3
你下面的问题很严重!

nfsmnt/

【在 w****2 的大作中提到】
: 很冒昧的打扰大家。大家能帮我看一下下面的问题吗,不胜感激。
: 问题是这样的,在生产环境下
: 1、Suse的Linux有 /nfsmnt/work_pub/web 文件夹和 /nfsmnt/work_inwork/web
: 文件夹 ,它们都是NFS文件挂载
: 2、机器上有多个进程会读写/nfsmnt/work_pub/web 文件夹的内容
: 3、cron会周期性的 删除/nfsmnt/work_pub/web 文件夹下所有文件,并把/nfsmnt/
: work_inwork/web 文件夹下的所有内容拷贝到前面那个文件夹中
: 这样,完全删除/nfsmnt/work_pub/web 文件夹下所有文件的时候就会有.nfs文件删除
: 不掉(上面的流程因为某些问题不方便改动)。
: 想咨询的问题是:我现在能不能修改一下fs/nfs/dir.c 中 nfs_sillyrename这个方法

1 (共1页)
进入Linux版参与讨论
相关主题
有没有可能写个ftp的脚本?奇怪的df
svnserver怎么把现在机器上的所有用户加入svn用户呢?急问:linux 2.6 里,如何从inode得到ext2_inode_info?
Samba + NFS + intensive backup 靠谱么?求教网卡设置问题
企业计算机系统如何规划和设置?为啥用mmap访问文件的效率高呢?
Symbolic Link: ln 和 cp -s 是一样的么?问个firewall(iptables)的问题
SSA, 能不能讲一下 inode为啥 inode-cache 的内存算在 used 里面,不算在 cached 里面呢?
Server efficiency用一个linux系统读一个linux硬盘,被读的硬盘会留痕迹吗
想修改buffer cache的内核代码?请问从哪开始Linux的文件ACL信息存在什么地方的?
相关话题的讨论汇总
话题: dentry话题: nfs话题: nfsmnt话题: sdentry话题: silly