Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ====================================================================================================================================================================================
- Variable: inode->i_blocks Addresses: c10aa04b c10aa891 c10a9f72
- c10a9f72 __inode_sub_bytes /linux-3.13.5/fs/stat.c:471
- c10aa891 __inode_add_bytes /linux-3.13.5/fs/stat.c:451
- c10aa04b generic_fillattr /linux-3.13.5/fs/stat.c:35
- c10aa04b <-> c10a9f72
- c10aa04b <-> c10aa891
- c10aa04b <-> c10a9f72
- /linux-3.13.5/fs/stat.c:471
- 461 {
- 462 spin_lock(&inode->i_lock);
- 463 __inode_add_bytes(inode, bytes);
- 464 spin_unlock(&inode->i_lock);
- 465 }
- 466
- 467 EXPORT_SYMBOL(inode_add_bytes);
- 468
- 469 void __inode_sub_bytes(struct inode *inode, loff_t bytes)
- 470 {
- ==> 471 inode->i_blocks -= bytes >> 9;
- 472 bytes &= 511;
- 473 if (inode->i_bytes < bytes) {
- 474 inode->i_blocks--;
- 475 inode->i_bytes += 512;
- 476 }
- 477 inode->i_bytes -= bytes;
- 478 }
- 479
- 480 EXPORT_SYMBOL(__inode_sub_bytes);
- 481
- /linux-3.13.5/fs/stat.c:451
- 441 error = vfs_fstatat(dfd, filename, &stat, flag);
- 442 if (error)
- 443 return error;
- 444 return cp_new_stat64(&stat, statbuf);
- 445 }
- 446 #endif /* __ARCH_WANT_STAT64 || __ARCH_WANT_COMPAT_STAT64 */
- 447
- 448 /* Caller is here responsible for sufficient locking (ie. inode->i_lock) */
- 449 void __inode_add_bytes(struct inode *inode, loff_t bytes)
- 450 {
- ==> 451 inode->i_blocks += bytes >> 9;
- 452 bytes &= 511;
- 453 inode->i_bytes += bytes;
- 454 if (inode->i_bytes >= 512) {
- 455 inode->i_blocks++;
- 456 inode->i_bytes -= 512;
- 457 }
- 458 }
- 459
- 460 void inode_add_bytes(struct inode *inode, loff_t bytes)
- 461 {
- /linux-3.13.5/fs/stat.c:35
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- 31 stat->atime = inode->i_atime;
- 32 stat->mtime = inode->i_mtime;
- 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- ==> 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- 42 * @path: file to get attributes from
- 43 * @stat: structure to return attributes in
- 44 *
- 45 * Get attributes without calling security_inode_getattr.
- ====================================================================================================================================================================================
- Variable: inode->i_ctime Addresses: c10aa032 c110b231
- c10aa032 generic_fillattr /linux-3.13.5/fs/stat.c:33
- c110b231 ext4_current_time /linux-3.13.5/fs/ext4/inode.c:3769
- c10aa032 <-> c110b231
- c10aa032 <-> c110b231
- /linux-3.13.5/fs/stat.c:33
- 23 stat->dev = inode->i_sb->s_dev;
- 24 stat->ino = inode->i_ino;
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- 31 stat->atime = inode->i_atime;
- 32 stat->mtime = inode->i_mtime;
- ==> 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- 42 * @path: file to get attributes from
- 43 * @stat: structure to return attributes in
- /linux-3.13.5/fs/ext4/inode.c:3769
- 3759 /*
- 3760 * If this was a simple ftruncate() and the file will remain alive,
- 3761 * then we need to clear up the orphan record which we created above.
- 3762 * However, if this was a real unlink then we were called by
- 3763 * ext4_delete_inode(), and we allow that function to clean up the
- 3764 * orphan info for us.
- 3765 */
- 3766 if (inode->i_nlink)
- 3767 ext4_orphan_del(handle, inode);
- 3768
- ==> 3769 inode->i_mtime = inode->i_ctime = ext4_current_time(inode);
- 3770 ext4_mark_inode_dirty(handle, inode);
- 3771 ext4_journal_stop(handle);
- 3772
- 3773 trace_ext4_truncate_exit(inode);
- 3774 }
- 3775
- 3776 /*
- 3777 * ext4_get_inode_loc returns with an extra refcount against the inode's
- 3778 * underlying buffer_head on success. If 'in_mem' is true, we have all
- 3779 * data in memory that is needed to recreate the on-disk version of this
- ====================================================================================================================================================================================
- Variable: inode->i_blocks Addresses: c10a9f75 c110ab50 c10aa048 c10aa894
- c10a9f75 __inode_sub_bytes /linux-3.13.5/fs/stat.c:471
- c110ab50 ext4_inode_blocks_set /linux-3.13.5/fs/ext4/inode.c:4238
- c10aa048 generic_fillattr /linux-3.13.5/fs/stat.c:35
- c10aa894 __inode_add_bytes /linux-3.13.5/fs/stat.c:451
- c10a9f75 <-> c10aa048
- c10aa894 <-> c110ab50
- c10aa048 <-> c10aa894
- c10aa048 <-> c10aa894
- /linux-3.13.5/fs/stat.c:471
- 461 {
- 462 spin_lock(&inode->i_lock);
- 463 __inode_add_bytes(inode, bytes);
- 464 spin_unlock(&inode->i_lock);
- 465 }
- 466
- 467 EXPORT_SYMBOL(inode_add_bytes);
- 468
- 469 void __inode_sub_bytes(struct inode *inode, loff_t bytes)
- 470 {
- ==> 471 inode->i_blocks -= bytes >> 9;
- 472 bytes &= 511;
- 473 if (inode->i_bytes < bytes) {
- 474 inode->i_blocks--;
- 475 inode->i_bytes += 512;
- 476 }
- 477 inode->i_bytes -= bytes;
- 478 }
- 479
- 480 EXPORT_SYMBOL(__inode_sub_bytes);
- 481
- /linux-3.13.5/fs/ext4/inode.c:4238
- 4228 brelse(iloc.bh);
- 4229 iget_failed(inode);
- 4230 return ERR_PTR(ret);
- 4231 }
- 4232
- 4233 static int ext4_inode_blocks_set(handle_t *handle,
- 4234 struct ext4_inode *raw_inode,
- 4235 struct ext4_inode_info *ei)
- 4236 {
- 4237 struct inode *inode = &(ei->vfs_inode);
- ==> 4238 u64 i_blocks = inode->i_blocks;
- 4239 struct super_block *sb = inode->i_sb;
- 4240
- 4241 if (i_blocks <= ~0U) {
- 4242 /*
- 4243 * i_blocks can be represented in a 32 bit variable
- 4244 * as multiple of 512 bytes
- 4245 */
- 4246 raw_inode->i_blocks_lo = cpu_to_le32(i_blocks);
- 4247 raw_inode->i_blocks_high = 0;
- 4248 ext4_clear_inode_flag(inode, EXT4_INODE_HUGE_FILE);
- /linux-3.13.5/fs/stat.c:35
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- 31 stat->atime = inode->i_atime;
- 32 stat->mtime = inode->i_mtime;
- 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- ==> 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- 42 * @path: file to get attributes from
- 43 * @stat: structure to return attributes in
- 44 *
- 45 * Get attributes without calling security_inode_getattr.
- /linux-3.13.5/fs/stat.c:451
- 441 error = vfs_fstatat(dfd, filename, &stat, flag);
- 442 if (error)
- 443 return error;
- 444 return cp_new_stat64(&stat, statbuf);
- 445 }
- 446 #endif /* __ARCH_WANT_STAT64 || __ARCH_WANT_COMPAT_STAT64 */
- 447
- 448 /* Caller is here responsible for sufficient locking (ie. inode->i_lock) */
- 449 void __inode_add_bytes(struct inode *inode, loff_t bytes)
- 450 {
- ==> 451 inode->i_blocks += bytes >> 9;
- 452 bytes &= 511;
- 453 inode->i_bytes += bytes;
- 454 if (inode->i_bytes >= 512) {
- 455 inode->i_blocks++;
- 456 inode->i_bytes -= 512;
- 457 }
- 458 }
- 459
- 460 void inode_add_bytes(struct inode *inode, loff_t bytes)
- 461 {
- ====================================================================================================================================================================================
- Variable: inode->i_ctime Addresses: c10b79e9 c110b22b c10aa02f
- c110b22b ext4_current_time /linux-3.13.5/fs/ext4/inode.c:3769
- c10b79e9 update_time /linux-3.13.5/fs/inode.c:1510
- c10aa02f generic_fillattr /linux-3.13.5/fs/stat.c:33
- c110b22b <-> c10aa02f
- c10aa02f <-> c10b79e9
- c110b22b <-> c10aa02f
- /linux-3.13.5/fs/ext4/inode.c:3769
- 3759 /*
- 3760 * If this was a simple ftruncate() and the file will remain alive,
- 3761 * then we need to clear up the orphan record which we created above.
- 3762 * However, if this was a real unlink then we were called by
- 3763 * ext4_delete_inode(), and we allow that function to clean up the
- 3764 * orphan info for us.
- 3765 */
- 3766 if (inode->i_nlink)
- 3767 ext4_orphan_del(handle, inode);
- 3768
- ==> 3769 inode->i_mtime = inode->i_ctime = ext4_current_time(inode);
- 3770 ext4_mark_inode_dirty(handle, inode);
- 3771 ext4_journal_stop(handle);
- 3772
- 3773 trace_ext4_truncate_exit(inode);
- 3774 }
- 3775
- 3776 /*
- 3777 * ext4_get_inode_loc returns with an extra refcount against the inode's
- 3778 * underlying buffer_head on success. If 'in_mem' is true, we have all
- 3779 * data in memory that is needed to recreate the on-disk version of this
- /linux-3.13.5/fs/inode.c:1510
- 1500 static int update_time(struct inode *inode, struct timespec *time, int flags)
- 1501 {
- 1502 if (inode->i_op->update_time)
- 1503 return inode->i_op->update_time(inode, time, flags);
- 1504
- 1505 if (flags & S_ATIME)
- 1506 inode->i_atime = *time;
- 1507 if (flags & S_VERSION)
- 1508 inode_inc_iversion(inode);
- 1509 if (flags & S_CTIME)
- ==> 1510 inode->i_ctime = *time;
- 1511 if (flags & S_MTIME)
- 1512 inode->i_mtime = *time;
- 1513 mark_inode_dirty_sync(inode);
- 1514 return 0;
- 1515 }
- 1516
- 1517 /**
- 1518 * touch_atime - update the access time
- 1519 * @path: the &struct path to update
- 1520 *
- /linux-3.13.5/fs/stat.c:33
- 23 stat->dev = inode->i_sb->s_dev;
- 24 stat->ino = inode->i_ino;
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- 31 stat->atime = inode->i_atime;
- 32 stat->mtime = inode->i_mtime;
- ==> 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- 42 * @path: file to get attributes from
- 43 * @stat: structure to return attributes in
- ====================================================================================================================================================================================
- Variable: inode->i_atime Addresses: c10b7f62 c10b79a9 c10aa017 c10b7fcb
- c10b7f62 timespec_compare /linux-3.13.5/include/linux/time.h:35
- c10b7fcb timespec_equal /linux-3.13.5/include/linux/time.h:25
- c10aa017 generic_fillattr /linux-3.13.5/fs/stat.c:31
- c10b79a9 update_time /linux-3.13.5/fs/inode.c:1506
- c10b7f62 <-> c10b79a9
- c10b7fcb <-> c10b79a9
- c10aa017 <-> c10b79a9
- c10b7fcb <-> c10b79a9
- /linux-3.13.5/include/linux/time.h:35
- 25 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
- 26 }
- 27
- 28 /*
- 29 * lhs < rhs: return <0
- 30 * lhs == rhs: return 0
- 31 * lhs > rhs: return >0
- 32 */
- 33 static inline int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
- 34 {
- ==> 35 if (lhs->tv_sec < rhs->tv_sec)
- 36 return -1;
- 37 if (lhs->tv_sec > rhs->tv_sec)
- 38 return 1;
- 39 return lhs->tv_nsec - rhs->tv_nsec;
- 40 }
- 41
- 42 static inline int timeval_compare(const struct timeval *lhs, const struct timeval *rhs)
- 43 {
- 44 if (lhs->tv_sec < rhs->tv_sec)
- 45 return -1;
- /linux-3.13.5/include/linux/time.h:25
- 15 #define NSEC_PER_MSEC 1000000L
- 16 #define USEC_PER_SEC 1000000L
- 17 #define NSEC_PER_SEC 1000000000L
- 18 #define FSEC_PER_SEC 1000000000000000LL
- 19
- 20 #define TIME_T_MAX (time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1)
- 21
- 22 static inline int timespec_equal(const struct timespec *a,
- 23 const struct timespec *b)
- 24 {
- ==> 25 return (a->tv_sec == b->tv_sec) && (a->tv_nsec == b->tv_nsec);
- 26 }
- 27
- 28 /*
- 29 * lhs < rhs: return <0
- 30 * lhs == rhs: return 0
- 31 * lhs > rhs: return >0
- 32 */
- 33 static inline int timespec_compare(const struct timespec *lhs, const struct timespec *rhs)
- 34 {
- 35 if (lhs->tv_sec < rhs->tv_sec)
- /linux-3.13.5/fs/stat.c:31
- 21 void generic_fillattr(struct inode *inode, struct kstat *stat)
- 22 {
- 23 stat->dev = inode->i_sb->s_dev;
- 24 stat->ino = inode->i_ino;
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- ==> 31 stat->atime = inode->i_atime;
- 32 stat->mtime = inode->i_mtime;
- 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- /linux-3.13.5/fs/inode.c:1506
- 1496 /*
- 1497 * This does the actual work of updating an inodes time or version. Must have
- 1498 * had called mnt_want_write() before calling this.
- 1499 */
- 1500 static int update_time(struct inode *inode, struct timespec *time, int flags)
- 1501 {
- 1502 if (inode->i_op->update_time)
- 1503 return inode->i_op->update_time(inode, time, flags);
- 1504
- 1505 if (flags & S_ATIME)
- ==> 1506 inode->i_atime = *time;
- 1507 if (flags & S_VERSION)
- 1508 inode_inc_iversion(inode);
- 1509 if (flags & S_CTIME)
- 1510 inode->i_ctime = *time;
- 1511 if (flags & S_MTIME)
- 1512 inode->i_mtime = *time;
- 1513 mark_inode_dirty_sync(inode);
- 1514 return 0;
- 1515 }
- 1516
- ====================================================================================================================================================================================
- Variable: inode->i_mtime Addresses: c10b79f9 c10aa023 c110b237
- c110b237 ext4_truncate /linux-3.13.5/fs/ext4/inode.c:3769
- c10b79f9 update_time /linux-3.13.5/fs/inode.c:1512
- c10aa023 generic_fillattr /linux-3.13.5/fs/stat.c:32
- c10aa023 <-> c110b237
- c10b79f9 <-> c10aa023
- c10b79f9 <-> c10aa023
- /linux-3.13.5/fs/ext4/inode.c:3769
- 3759 /*
- 3760 * If this was a simple ftruncate() and the file will remain alive,
- 3761 * then we need to clear up the orphan record which we created above.
- 3762 * However, if this was a real unlink then we were called by
- 3763 * ext4_delete_inode(), and we allow that function to clean up the
- 3764 * orphan info for us.
- 3765 */
- 3766 if (inode->i_nlink)
- 3767 ext4_orphan_del(handle, inode);
- 3768
- ==> 3769 inode->i_mtime = inode->i_ctime = ext4_current_time(inode);
- 3770 ext4_mark_inode_dirty(handle, inode);
- 3771 ext4_journal_stop(handle);
- 3772
- 3773 trace_ext4_truncate_exit(inode);
- 3774 }
- 3775
- 3776 /*
- 3777 * ext4_get_inode_loc returns with an extra refcount against the inode's
- 3778 * underlying buffer_head on success. If 'in_mem' is true, we have all
- 3779 * data in memory that is needed to recreate the on-disk version of this
- /linux-3.13.5/fs/inode.c:1512
- 1502 if (inode->i_op->update_time)
- 1503 return inode->i_op->update_time(inode, time, flags);
- 1504
- 1505 if (flags & S_ATIME)
- 1506 inode->i_atime = *time;
- 1507 if (flags & S_VERSION)
- 1508 inode_inc_iversion(inode);
- 1509 if (flags & S_CTIME)
- 1510 inode->i_ctime = *time;
- 1511 if (flags & S_MTIME)
- ==> 1512 inode->i_mtime = *time;
- 1513 mark_inode_dirty_sync(inode);
- 1514 return 0;
- 1515 }
- 1516
- 1517 /**
- 1518 * touch_atime - update the access time
- 1519 * @path: the &struct path to update
- 1520 *
- 1521 * Update the accessed time on an inode and mark it for writeback.
- 1522 * This function automatically handles read only file systems and media,
- /linux-3.13.5/fs/stat.c:32
- 22 {
- 23 stat->dev = inode->i_sb->s_dev;
- 24 stat->ino = inode->i_ino;
- 25 stat->mode = inode->i_mode;
- 26 stat->nlink = inode->i_nlink;
- 27 stat->uid = inode->i_uid;
- 28 stat->gid = inode->i_gid;
- 29 stat->rdev = inode->i_rdev;
- 30 stat->size = i_size_read(inode);
- 31 stat->atime = inode->i_atime;
- ==> 32 stat->mtime = inode->i_mtime;
- 33 stat->ctime = inode->i_ctime;
- 34 stat->blksize = (1 << inode->i_blkbits);
- 35 stat->blocks = inode->i_blocks;
- 36 }
- 37
- 38 EXPORT_SYMBOL(generic_fillattr);
- 39
- 40 /**
- 41 * vfs_getattr_nosec - getattr without security checks
- 42 * @path: file to get attributes from
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement