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 linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 26 Mar 2009 20:56:29 +0300 From: Alexey Dobriyan <adobriyan@...il.com> To: Matthew Garrett <mjg@...hat.com> Cc: Linus Torvalds <torvalds@...ux-foundation.org>, Andrew Morton <akpm@...ux-foundation.org>, Frans Pop <elendil@...net.nl>, mingo@...e.hu, tytso@....edu, jack@...e.cz, alan@...rguk.ukuu.org.uk, arjan@...radead.org, a.p.zijlstra@...llo.nl, npiggin@...e.de, jens.axboe@...cle.com, drees76@...il.com, jesper@...gh.cc, linux-kernel@...r.kernel.org, oleg@...hat.com, roland@...hat.com, willy@...ux.intel.com, vaurora@...hat.com Subject: Re: [PATCH] Allow relatime to update atime once a day On Thu, Mar 26, 2009 at 05:32:14PM +0000, Matthew Garrett wrote: > Allow atime to be updated once per day even with relatime. This lets > utilities like tmpreaper (which delete files based on last access time) > continue working, making relatime a plausible default for distributions. > +/* > + * With relative atime, only update atime if the previous atime is > + * earlier than either the ctime or mtime or if at least a day has > + * passed since the last atime update. > + */ > +static int relatime_need_update(struct vfsmount *mnt, struct inode *inode, > + struct timespec now) > +{ > + > + if (!(mnt->mnt_flags & MNT_RELATIME)) > + return 1; > + /* > + * Is mtime younger than atime? If yes, update atime: > + */ > + if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0) > + return 1; > + /* > + * Is ctime younger than atime? If yes, update atime: > + */ > + if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0) > + return 1; > + > + /* > + * Is the previous atime value older than a day? If yes, > + * update atime: > + */ > + if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= 24*60*60) > + return 1; > + /* > + * Good, we can skip the atime update: > + */ > + return 0; > +} Good example of overcommented code. -- 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