diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c index c2c3491b18cf147df1e7341b89749ded292d36c0..fd4b6dd711502a31471954105e9f0d62acb00bf2 100644 --- a/fs/ext3/dir.c +++ b/fs/ext3/dir.c @@ -210,7 +210,7 @@ static int ext3_readdir(struct file * filp, * not the directory has been modified * during the copy operation. */ - unsigned long version = filp->f_version; + u64 version = filp->f_version; error = filldir(dirent, de->name, de->name_len, diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index e11890acfa21e5199a425eacb2e662c2402ab9bf..0fb1e62b20d09e25d89c9cfbf00495212f051afe 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c @@ -210,7 +210,7 @@ static int ext4_readdir(struct file * filp, * not the directory has been modified * during the copy operation. */ - unsigned long version = filp->f_version; + u64 version = filp->f_version; error = filldir(dirent, de->name, de->name_len, diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 7453b70c1a1901ee6ee551be4a258a20a63d9526..6a2f143e269c338b09989595264722dcf742e4e4 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c @@ -586,7 +586,7 @@ int __ocfs2_add_entry(handle_t *handle, } static int ocfs2_dir_foreach_blk_id(struct inode *inode, - unsigned long *f_version, + u64 *f_version, loff_t *f_pos, void *priv, filldir_t filldir, int *filldir_err) { @@ -648,7 +648,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode, * not the directory has been modified * during the copy operation. */ - unsigned long version = *f_version; + u64 version = *f_version; unsigned char d_type = DT_UNKNOWN; if (de->file_type < OCFS2_FT_MAX) @@ -677,7 +677,7 @@ static int ocfs2_dir_foreach_blk_id(struct inode *inode, } static int ocfs2_dir_foreach_blk_el(struct inode *inode, - unsigned long *f_version, + u64 *f_version, loff_t *f_pos, void *priv, filldir_t filldir, int *filldir_err) { @@ -798,7 +798,7 @@ static int ocfs2_dir_foreach_blk_el(struct inode *inode, return stored; } -static int ocfs2_dir_foreach_blk(struct inode *inode, unsigned long *f_version, +static int ocfs2_dir_foreach_blk(struct inode *inode, u64 *f_version, loff_t *f_pos, void *priv, filldir_t filldir, int *filldir_err) { @@ -818,7 +818,7 @@ int ocfs2_dir_foreach(struct inode *inode, loff_t *f_pos, void *priv, filldir_t filldir) { int ret = 0, filldir_err = 0; - unsigned long version = inode->i_version; + u64 version = inode->i_version; while (*f_pos < i_size_read(inode)) { ret = ocfs2_dir_foreach_blk(inode, &version, f_pos, priv, diff --git a/fs/proc/base.c b/fs/proc/base.c index 78fdfea1a7f87a9afe95a24e0566279c1fbd69ab..ea115d4c9f59145bbe70eef7c9a8476bdf2d70d7 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2586,7 +2586,7 @@ static int proc_task_readdir(struct file * filp, void * dirent, filldir_t filldi /* f_version caches the tgid value that the last readdir call couldn't * return. lseek aka telldir automagically resets f_version to 0. */ - tid = filp->f_version; + tid = (int)filp->f_version; filp->f_version = 0; for (task = first_tid(leader, tid, pos - 2); task; @@ -2595,7 +2595,7 @@ static int proc_task_readdir(struct file * filp, void * dirent, filldir_t filldi if (proc_task_fill_cache(filp, dirent, filldir, task, tid) < 0) { /* returning this tgid failed, save it as the first * pid for the next readir call */ - filp->f_version = tid; + filp->f_version = (u64)tid; put_task_struct(task); break; } diff --git a/include/linux/fs.h b/include/linux/fs.h index bb89a5dfe9ad789247a80f03dbc36bd61ea1b222..30aca33994501a9add65f24814105814db133313 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -792,7 +792,7 @@ struct file { unsigned int f_uid, f_gid; struct file_ra_state f_ra; - unsigned long f_version; + u64 f_version; #ifdef CONFIG_SECURITY void *f_security; #endif diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h index 8bf1e05115b42c341de6e9c1e0af615c897e656c..ebbc02b325fc88cc65dbab470def7e3d80084608 100644 --- a/include/linux/seq_file.h +++ b/include/linux/seq_file.h @@ -18,7 +18,7 @@ struct seq_file { size_t from; size_t count; loff_t index; - loff_t version; + u64 version; struct mutex lock; const struct seq_operations *op; void *private;