forked from Minki/linux
ext2: convert to new i_version API
Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
317bc94780
commit
e1d747d9b6
@ -26,6 +26,7 @@
|
||||
#include <linux/buffer_head.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/swap.h>
|
||||
#include <linux/iversion.h>
|
||||
|
||||
typedef struct ext2_dir_entry_2 ext2_dirent;
|
||||
|
||||
@ -92,7 +93,7 @@ static int ext2_commit_chunk(struct page *page, loff_t pos, unsigned len)
|
||||
struct inode *dir = mapping->host;
|
||||
int err = 0;
|
||||
|
||||
dir->i_version++;
|
||||
inode_inc_iversion(dir);
|
||||
block_write_end(NULL, mapping, pos, len, len, page, NULL);
|
||||
|
||||
if (pos+len > dir->i_size) {
|
||||
@ -293,7 +294,7 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
|
||||
unsigned long npages = dir_pages(inode);
|
||||
unsigned chunk_mask = ~(ext2_chunk_size(inode)-1);
|
||||
unsigned char *types = NULL;
|
||||
int need_revalidate = file->f_version != inode->i_version;
|
||||
bool need_revalidate = inode_cmp_iversion(inode, file->f_version);
|
||||
|
||||
if (pos > inode->i_size - EXT2_DIR_REC_LEN(1))
|
||||
return 0;
|
||||
@ -319,8 +320,8 @@ ext2_readdir(struct file *file, struct dir_context *ctx)
|
||||
offset = ext2_validate_entry(kaddr, offset, chunk_mask);
|
||||
ctx->pos = (n<<PAGE_SHIFT) + offset;
|
||||
}
|
||||
file->f_version = inode->i_version;
|
||||
need_revalidate = 0;
|
||||
file->f_version = inode_query_iversion(inode);
|
||||
need_revalidate = false;
|
||||
}
|
||||
de = (ext2_dirent *)(kaddr+offset);
|
||||
limit = kaddr + ext2_last_byte(inode, n) - EXT2_DIR_REC_LEN(1);
|
||||
|
@ -33,6 +33,7 @@
|
||||
#include <linux/quotaops.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include <linux/dax.h>
|
||||
#include <linux/iversion.h>
|
||||
#include "ext2.h"
|
||||
#include "xattr.h"
|
||||
#include "acl.h"
|
||||
@ -184,7 +185,7 @@ static struct inode *ext2_alloc_inode(struct super_block *sb)
|
||||
if (!ei)
|
||||
return NULL;
|
||||
ei->i_block_alloc_info = NULL;
|
||||
ei->vfs_inode.i_version = 1;
|
||||
inode_set_iversion(&ei->vfs_inode, 1);
|
||||
#ifdef CONFIG_QUOTA
|
||||
memset(&ei->i_dquot, 0, sizeof(ei->i_dquot));
|
||||
#endif
|
||||
@ -1569,7 +1570,7 @@ out:
|
||||
return err;
|
||||
if (inode->i_size < off+len-towrite)
|
||||
i_size_write(inode, off+len-towrite);
|
||||
inode->i_version++;
|
||||
inode_inc_iversion(inode);
|
||||
inode->i_mtime = inode->i_ctime = current_time(inode);
|
||||
mark_inode_dirty(inode);
|
||||
return len - towrite;
|
||||
|
Loading…
Reference in New Issue
Block a user