You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[PATCH] inode-diet: Eliminate i_blksize from the inode structure
This eliminates the i_blksize field from struct inode. Filesystems that want to provide a per-inode st_blksize can do so by providing their own getattr routine instead of using the generic_fillattr() function. Note that some filesystems were providing pretty much random (and incorrect) values for i_blksize. [bunk@stusta.de: cleanup] [akpm@osdl.org: generic_fillattr() fix] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
577c4eb09d
commit
ba52de123d
@@ -82,7 +82,6 @@ spufs_new_inode(struct super_block *sb, int mode)
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = current->fsuid;
|
||||
inode->i_gid = current->fsgid;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
out:
|
||||
|
||||
@@ -91,7 +91,6 @@ static struct inode *hypfs_make_inode(struct super_block *sb, int mode)
|
||||
ret->i_mode = mode;
|
||||
ret->i_uid = hypfs_info->uid;
|
||||
ret->i_gid = hypfs_info->gid;
|
||||
ret->i_blksize = PAGE_CACHE_SIZE;
|
||||
ret->i_blocks = 0;
|
||||
ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
|
||||
if (mode & S_IFDIR)
|
||||
|
||||
@@ -662,7 +662,8 @@ static void do_loop_switch(struct loop_device *lo, struct switch_request *p)
|
||||
|
||||
mapping_set_gfp_mask(old_file->f_mapping, lo->old_gfp_mask);
|
||||
lo->lo_backing_file = file;
|
||||
lo->lo_blocksize = mapping->host->i_blksize;
|
||||
lo->lo_blocksize = S_ISBLK(mapping->host->i_mode) ?
|
||||
mapping->host->i_bdev->bd_block_size : PAGE_SIZE;
|
||||
lo->old_gfp_mask = mapping_gfp_mask(mapping);
|
||||
mapping_set_gfp_mask(mapping, lo->old_gfp_mask & ~(__GFP_IO|__GFP_FS));
|
||||
complete(&p->wait);
|
||||
@@ -794,7 +795,9 @@ static int loop_set_fd(struct loop_device *lo, struct file *lo_file,
|
||||
if (!(lo_flags & LO_FLAGS_USE_AOPS) && !file->f_op->write)
|
||||
lo_flags |= LO_FLAGS_READ_ONLY;
|
||||
|
||||
lo_blocksize = inode->i_blksize;
|
||||
lo_blocksize = S_ISBLK(inode->i_mode) ?
|
||||
inode->i_bdev->bd_block_size : PAGE_SIZE;
|
||||
|
||||
error = 0;
|
||||
} else {
|
||||
goto out_putf;
|
||||
|
||||
@@ -61,7 +61,6 @@ static int ipathfs_mknod(struct inode *dir, struct dentry *dentry,
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = 0;
|
||||
inode->i_gid = 0;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
inode->i_private = data;
|
||||
|
||||
@@ -104,7 +104,6 @@ capifs_fill_super(struct super_block *s, void *data, int silent)
|
||||
inode->i_ino = 1;
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_blksize = 1024;
|
||||
inode->i_uid = inode->i_gid = 0;
|
||||
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
|
||||
inode->i_op = &simple_dir_inode_operations;
|
||||
@@ -149,7 +148,6 @@ void capifs_new_ncci(unsigned int number, dev_t device)
|
||||
if (!inode)
|
||||
return;
|
||||
inode->i_ino = number+2;
|
||||
inode->i_blksize = 1024;
|
||||
inode->i_uid = config.setuid ? config.uid : current->fsuid;
|
||||
inode->i_gid = config.setgid ? config.gid : current->fsgid;
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
|
||||
|
||||
@@ -147,7 +147,6 @@ static struct inode *ibmasmfs_make_inode(struct super_block *sb, int mode)
|
||||
if (ret) {
|
||||
ret->i_mode = mode;
|
||||
ret->i_uid = ret->i_gid = 0;
|
||||
ret->i_blksize = PAGE_CACHE_SIZE;
|
||||
ret->i_blocks = 0;
|
||||
ret->i_atime = ret->i_mtime = ret->i_ctime = CURRENT_TIME;
|
||||
}
|
||||
|
||||
@@ -31,7 +31,6 @@ static struct inode * oprofilefs_get_inode(struct super_block * sb, int mode)
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = 0;
|
||||
inode->i_gid = 0;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
}
|
||||
|
||||
@@ -249,7 +249,6 @@ static struct inode *usbfs_get_inode (struct super_block *sb, int mode, dev_t de
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = current->fsuid;
|
||||
inode->i_gid = current->fsgid;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
switch (mode & S_IFMT) {
|
||||
|
||||
@@ -1966,7 +1966,6 @@ gadgetfs_make_inode (struct super_block *sb,
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = default_uid;
|
||||
inode->i_gid = default_gid;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime
|
||||
= CURRENT_TIME;
|
||||
|
||||
+1
-3
@@ -204,7 +204,6 @@ struct inode *v9fs_get_inode(struct super_block *sb, int mode)
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = current->fsuid;
|
||||
inode->i_gid = current->fsgid;
|
||||
inode->i_blksize = sb->s_blocksize;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_rdev = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
@@ -950,9 +949,8 @@ v9fs_stat2inode(struct v9fs_stat *stat, struct inode *inode,
|
||||
|
||||
inode->i_size = stat->length;
|
||||
|
||||
inode->i_blksize = sb->s_blocksize;
|
||||
inode->i_blocks =
|
||||
(inode->i_size + inode->i_blksize - 1) >> sb->s_blocksize_bits;
|
||||
(inode->i_size + sb->s_blocksize - 1) >> sb->s_blocksize_bits;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -269,7 +269,6 @@ adfs_iget(struct super_block *sb, struct object_info *obj)
|
||||
inode->i_ino = obj->file_id;
|
||||
inode->i_size = obj->size;
|
||||
inode->i_nlink = 2;
|
||||
inode->i_blksize = PAGE_SIZE;
|
||||
inode->i_blocks = (inode->i_size + sb->s_blocksize - 1) >>
|
||||
sb->s_blocksize_bits;
|
||||
|
||||
|
||||
@@ -72,7 +72,6 @@ static int afs_inode_map_status(struct afs_vnode *vnode)
|
||||
inode->i_ctime.tv_sec = vnode->status.mtime_server;
|
||||
inode->i_ctime.tv_nsec = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_version = vnode->fid.unique;
|
||||
inode->i_mapping->a_ops = &afs_fs_aops;
|
||||
|
||||
@@ -216,7 +216,6 @@ static void autofs_read_inode(struct inode *inode)
|
||||
inode->i_nlink = 2;
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_blksize = 1024;
|
||||
|
||||
if ( ino == AUTOFS_ROOT_INO ) {
|
||||
inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
|
||||
|
||||
@@ -447,7 +447,6 @@ struct inode *autofs4_get_inode(struct super_block *sb,
|
||||
inode->i_uid = 0;
|
||||
inode->i_gid = 0;
|
||||
}
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME;
|
||||
|
||||
|
||||
@@ -365,7 +365,6 @@ befs_read_inode(struct inode *inode)
|
||||
inode->i_mtime.tv_nsec = 0; /* lower 16 bits are not a time */
|
||||
inode->i_ctime = inode->i_mtime;
|
||||
inode->i_atime = inode->i_mtime;
|
||||
inode->i_blksize = befs_sb->block_size;
|
||||
|
||||
befs_ino->i_inode_num = fsrun_to_cpu(sb, raw_inode->inode_num);
|
||||
befs_ino->i_parent = fsrun_to_cpu(sb, raw_inode->parent);
|
||||
|
||||
+1
-1
@@ -102,7 +102,7 @@ static int bfs_create(struct inode * dir, struct dentry * dentry, int mode,
|
||||
inode->i_uid = current->fsuid;
|
||||
inode->i_gid = (dir->i_mode & S_ISGID) ? dir->i_gid : current->fsgid;
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME_SEC;
|
||||
inode->i_blocks = inode->i_blksize = 0;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_op = &bfs_file_inops;
|
||||
inode->i_fop = &bfs_file_operations;
|
||||
inode->i_mapping->a_ops = &bfs_aops;
|
||||
|
||||
@@ -76,7 +76,6 @@ static void bfs_read_inode(struct inode * inode)
|
||||
inode->i_size = BFS_FILESIZE(di);
|
||||
inode->i_blocks = BFS_FILEBLOCKS(di);
|
||||
if (inode->i_size || inode->i_blocks) dprintf("Registered inode with %lld size, %ld blocks\n", inode->i_size, inode->i_blocks);
|
||||
inode->i_blksize = PAGE_SIZE;
|
||||
inode->i_atime.tv_sec = le32_to_cpu(di->i_atime);
|
||||
inode->i_mtime.tv_sec = le32_to_cpu(di->i_mtime);
|
||||
inode->i_ctime.tv_sec = le32_to_cpu(di->i_ctime);
|
||||
|
||||
@@ -507,7 +507,6 @@ static struct inode *bm_get_inode(struct super_block *sb, int mode)
|
||||
inode->i_mode = mode;
|
||||
inode->i_uid = 0;
|
||||
inode->i_gid = 0;
|
||||
inode->i_blksize = PAGE_CACHE_SIZE;
|
||||
inode->i_blocks = 0;
|
||||
inode->i_atime = inode->i_mtime = inode->i_ctime =
|
||||
current_fs_time(inode->i_sb);
|
||||
|
||||
@@ -253,7 +253,6 @@ cifs_alloc_inode(struct super_block *sb)
|
||||
file data or metadata */
|
||||
cifs_inode->clientCanCacheRead = FALSE;
|
||||
cifs_inode->clientCanCacheAll = FALSE;
|
||||
cifs_inode->vfs_inode.i_blksize = CIFS_MAX_MSGSIZE;
|
||||
cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
|
||||
cifs_inode->vfs_inode.i_flags = S_NOATIME | S_NOCMTIME;
|
||||
INIT_LIST_HEAD(&cifs_inode->openFileList);
|
||||
|
||||
+2
-3
@@ -216,10 +216,9 @@ static void fill_in_inode(struct inode *tmp_inode, int new_buf_type,
|
||||
|
||||
if (allocation_size < end_of_file)
|
||||
cFYI(1, ("May be sparse file, allocation less than file size"));
|
||||
cFYI(1, ("File Size %ld and blocks %llu and blocksize %ld",
|
||||
cFYI(1, ("File Size %ld and blocks %llu",
|
||||
(unsigned long)tmp_inode->i_size,
|
||||
(unsigned long long)tmp_inode->i_blocks,
|
||||
tmp_inode->i_blksize));
|
||||
(unsigned long long)tmp_inode->i_blocks));
|
||||
if (S_ISREG(tmp_inode->i_mode)) {
|
||||
cFYI(1, ("File inode"));
|
||||
tmp_inode->i_op = &cifs_file_inode_ops;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user