lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 8 Dec 2007 15:46:05 -0500 From: Erez Zadok <ezk@...sunysb.edu> To: akpm@...ux-foundation.org Cc: linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org, viro@....linux.org.uk, hch@...radead.org, Erez Zadok <ezk@...sunysb.edu> Subject: [PATCH 2/2] Unionfs: reduce the amount of cache-coherency debugging messages Signed-off-by: Erez Zadok <ezk@...sunysb.edu> --- fs/unionfs/dentry.c | 38 +++++++++++++++++++++++--------------- 1 files changed, 23 insertions(+), 15 deletions(-) diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c index 05d9914..7d27987 100644 --- a/fs/unionfs/dentry.c +++ b/fs/unionfs/dentry.c @@ -195,9 +195,11 @@ out: * file system doesn't change its inode times quick enough, resulting in a * false positive indication (which is harmless, it just makes unionfs do * extra work in re-validating the objects). To minimize the chances of - * these situations, we delay the detection of changed times by - * UNIONFS_MIN_CC_TIME (which defaults to 3 seconds, as with NFS's - * acregmin). + * these situations, we still consider such small time changes valid, but we + * don't print debugging messages unless the time changes are greater than + * UNIONFS_MIN_CC_TIME (which defaults to 3 seconds, as with NFS's acregmin) + * because significant changes are more likely due to users manually + * touching lower files. */ bool is_newer_lower(const struct dentry *dentry) { @@ -219,20 +221,26 @@ bool is_newer_lower(const struct dentry *dentry) continue; /* check if mtime/ctime have changed */ - if (unlikely((lower_inode->i_mtime.tv_sec - - inode->i_mtime.tv_sec) > UNIONFS_MIN_CC_TIME)) { - pr_info("unionfs: new lower inode mtime " - "(bindex=%d, name=%s)\n", bindex, - dentry->d_name.name); - show_dinode_times(dentry); + if (unlikely(timespec_compare(&inode->i_mtime, + &lower_inode->i_mtime) < 0)) { + if ((lower_inode->i_mtime.tv_sec - + inode->i_mtime.tv_sec) > UNIONFS_MIN_CC_TIME) { + pr_info("unionfs: new lower inode mtime " + "(bindex=%d, name=%s)\n", bindex, + dentry->d_name.name); + show_dinode_times(dentry); + } return true; } - if (unlikely((lower_inode->i_ctime.tv_sec - - inode->i_ctime.tv_sec) > UNIONFS_MIN_CC_TIME)) { - pr_info("unionfs: new lower inode ctime " - "(bindex=%d, name=%s)\n", bindex, - dentry->d_name.name); - show_dinode_times(dentry); + if (unlikely(timespec_compare(&inode->i_ctime, + &lower_inode->i_ctime) < 0)) { + if ((lower_inode->i_ctime.tv_sec - + inode->i_ctime.tv_sec) > UNIONFS_MIN_CC_TIME) { + pr_info("unionfs: new lower inode ctime " + "(bindex=%d, name=%s)\n", bindex, + dentry->d_name.name); + show_dinode_times(dentry); + } return true; } } -- 1.5.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists