mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-26 00:21:17 +00:00
Merge branch 'imm.timestamp' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs timestamp updates from Al Viro: "More 64bit timestamp work" * 'imm.timestamp' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: kernfs: don't bother with timestamp truncation fs: Do not overload update_time fs: Delete timespec64_trunc() fs: ubifs: Eliminate timespec64_trunc() usage fs: ceph: Delete timespec64_trunc() usage fs: cifs: Delete usage of timespec64_trunc fs: fat: Eliminate timespec64_trunc() usage utimes: Clamp the timestamps in notify_change()
This commit is contained in:
commit
bddea11b1b
13 changed files with 61 additions and 107 deletions
33
fs/inode.c
33
fs/inode.c
|
@ -1683,12 +1683,9 @@ EXPORT_SYMBOL(generic_update_time);
|
|||
*/
|
||||
static int update_time(struct inode *inode, struct timespec64 *time, int flags)
|
||||
{
|
||||
int (*update_time)(struct inode *, struct timespec64 *, int);
|
||||
|
||||
update_time = inode->i_op->update_time ? inode->i_op->update_time :
|
||||
generic_update_time;
|
||||
|
||||
return update_time(inode, time, flags);
|
||||
if (inode->i_op->update_time)
|
||||
return inode->i_op->update_time(inode, time, flags);
|
||||
return generic_update_time(inode, time, flags);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -2153,30 +2150,6 @@ void inode_nohighmem(struct inode *inode)
|
|||
}
|
||||
EXPORT_SYMBOL(inode_nohighmem);
|
||||
|
||||
/**
|
||||
* timespec64_trunc - Truncate timespec64 to a granularity
|
||||
* @t: Timespec64
|
||||
* @gran: Granularity in ns.
|
||||
*
|
||||
* Truncate a timespec64 to a granularity. Always rounds down. gran must
|
||||
* not be 0 nor greater than a second (NSEC_PER_SEC, or 10^9 ns).
|
||||
*/
|
||||
struct timespec64 timespec64_trunc(struct timespec64 t, unsigned gran)
|
||||
{
|
||||
/* Avoid division in the common cases 1 ns and 1 s. */
|
||||
if (gran == 1) {
|
||||
/* nothing */
|
||||
} else if (gran == NSEC_PER_SEC) {
|
||||
t.tv_nsec = 0;
|
||||
} else if (gran > 1 && gran < NSEC_PER_SEC) {
|
||||
t.tv_nsec -= t.tv_nsec % gran;
|
||||
} else {
|
||||
WARN(1, "illegal file time granularity: %u", gran);
|
||||
}
|
||||
return t;
|
||||
}
|
||||
EXPORT_SYMBOL(timespec64_trunc);
|
||||
|
||||
/**
|
||||
* timestamp_truncate - Truncate timespec to a granularity
|
||||
* @t: Timespec
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue