diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-04-13 12:19:01 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-04-13 12:19:01 -0700 |
| commit | b7d74ea0fdaa8d641fe6f18507c5f0d21b652d53 (patch) | |
| tree | 70c957916719692c4383cf1bec472a84c860dd73 /fs/ocfs2 | |
| parent | 0f00132132937ca01a99feaf8985109a9087c9ff (diff) | |
| parent | 2e43ca1a4f949e4beb763f8196695da02b17bd77 (diff) | |
| download | lwn-b7d74ea0fdaa8d641fe6f18507c5f0d21b652d53.tar.gz lwn-b7d74ea0fdaa8d641fe6f18507c5f0d21b652d53.zip | |
Merge tag 'vfs-7.1-rc1.kino' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
Pull vfs i_ino updates from Christian Brauner:
"For historical reasons, the inode->i_ino field is an unsigned long,
which means that it's 32 bits on 32 bit architectures. This has caused
a number of filesystems to implement hacks to hash a 64-bit identifier
into a 32-bit field, and deprives us of a universal identifier field
for an inode.
This changes the inode->i_ino field from an unsigned long to a u64.
This shouldn't make any material difference on 64-bit hosts, but
32-bit hosts will see struct inode grow by at least 4 bytes. This
could have effects on slabcache sizes and field alignment.
The bulk of the changes are to format strings and tracepoints, since
the kernel itself doesn't care that much about the i_ino field. The
first patch changes some vfs function arguments, so check that one out
carefully.
With this change, we may be able to shrink some inode structures. For
instance, struct nfs_inode has a fileid field that holds the 64-bit
inode number. With this set of changes, that field could be
eliminated. I'd rather leave that sort of cleanups for later just to
keep this simple"
* tag 'vfs-7.1-rc1.kino' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
nilfs2: fix 64-bit division operations in nilfs_bmap_find_target_in_group()
EVM: add comment describing why ino field is still unsigned long
vfs: remove externs from fs.h on functions modified by i_ino widening
treewide: fix missed i_ino format specifier conversions
ext4: fix signed format specifier in ext4_load_inode trace event
treewide: change inode->i_ino from unsigned long to u64
nilfs2: widen trace event i_ino fields to u64
f2fs: widen trace event i_ino fields to u64
ext4: widen trace event i_ino fields to u64
zonefs: widen trace event i_ino fields to u64
hugetlbfs: widen trace event i_ino fields to u64
ext2: widen trace event i_ino fields to u64
cachefiles: widen trace event i_ino fields to u64
vfs: widen trace event i_ino fields to u64
net: change sock.sk_ino and sock_i_ino() to u64
audit: widen ino fields to u64
vfs: widen inode hash/lookup functions to u64
Diffstat (limited to 'fs/ocfs2')
| -rw-r--r-- | fs/ocfs2/alloc.c | 2 | ||||
| -rw-r--r-- | fs/ocfs2/aops.c | 4 | ||||
| -rw-r--r-- | fs/ocfs2/dir.c | 8 | ||||
| -rw-r--r-- | fs/ocfs2/dlmfs/dlmfs.c | 10 | ||||
| -rw-r--r-- | fs/ocfs2/extent_map.c | 12 | ||||
| -rw-r--r-- | fs/ocfs2/inode.c | 2 | ||||
| -rw-r--r-- | fs/ocfs2/quota_local.c | 2 | ||||
| -rw-r--r-- | fs/ocfs2/refcounttree.c | 10 | ||||
| -rw-r--r-- | fs/ocfs2/xattr.c | 4 |
9 files changed, 27 insertions, 27 deletions
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c index 344fd4d95fbc..d40f5d205bce 100644 --- a/fs/ocfs2/alloc.c +++ b/fs/ocfs2/alloc.c @@ -7318,7 +7318,7 @@ start: * to check it up here before changing the tree. */ if (root_el->l_tree_depth && rec->e_int_clusters == 0) { - mlog(ML_ERROR, "Inode %lu has an empty " + mlog(ML_ERROR, "Inode %llu has an empty " "extent record, depth %u\n", inode->i_ino, le16_to_cpu(root_el->l_tree_depth)); status = ocfs2_remove_rightmost_empty_extent(osb, diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 17ba79f443ee..c7ad912ec7a0 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -137,7 +137,7 @@ int ocfs2_get_block(struct inode *inode, sector_t iblock, (unsigned long long)iblock, bh_result, create); if (OCFS2_I(inode)->ip_flags & OCFS2_INODE_SYSTEM_FILE) - mlog(ML_NOTICE, "get_block on system inode 0x%p (%lu)\n", + mlog(ML_NOTICE, "get_block on system inode 0x%p (%llu)\n", inode, inode->i_ino); if (S_ISLNK(inode->i_mode)) { @@ -2146,7 +2146,7 @@ static int ocfs2_dio_wr_get_block(struct inode *inode, sector_t iblock, ((iblock + ((len - 1) >> i_blkbits)) > endblk)) len = (endblk - iblock + 1) << i_blkbits; - mlog(0, "get block of %lu at %llu:%u req %u\n", + mlog(0, "get block of %llu at %llu:%u req %u\n", inode->i_ino, pos, len, total_len); /* diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c index 1c8abf2c592c..b82fe4431eb1 100644 --- a/fs/ocfs2/dir.c +++ b/fs/ocfs2/dir.c @@ -794,7 +794,7 @@ static int ocfs2_dx_dir_lookup_rec(struct inode *inode, if (le16_to_cpu(el->l_count) != ocfs2_extent_recs_per_dx_root(inode->i_sb)) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has invalid extent list length %u\n", + "Inode %llu has invalid extent list length %u\n", inode->i_ino, le16_to_cpu(el->l_count)); goto out; } @@ -812,7 +812,7 @@ static int ocfs2_dx_dir_lookup_rec(struct inode *inode, if (el->l_tree_depth) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in btree tree block %llu\n", + "Inode %llu has non zero tree depth in btree tree block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); goto out; @@ -821,7 +821,7 @@ static int ocfs2_dx_dir_lookup_rec(struct inode *inode, if (le16_to_cpu(el->l_next_free_rec) == 0) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has empty extent list at depth %u\n", + "Inode %llu has empty extent list at depth %u\n", inode->i_ino, le16_to_cpu(el->l_tree_depth)); goto out; @@ -839,7 +839,7 @@ static int ocfs2_dx_dir_lookup_rec(struct inode *inode, if (!found) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has bad extent record (%u, %u, 0) in btree\n", + "Inode %llu has bad extent record (%u, %u, 0) in btree\n", inode->i_ino, le32_to_cpu(rec->e_cpos), ocfs2_rec_clusters(el, rec)); diff --git a/fs/ocfs2/dlmfs/dlmfs.c b/fs/ocfs2/dlmfs/dlmfs.c index 45cce261da65..5821e33df78f 100644 --- a/fs/ocfs2/dlmfs/dlmfs.c +++ b/fs/ocfs2/dlmfs/dlmfs.c @@ -123,7 +123,7 @@ static int dlmfs_file_open(struct inode *inode, if (S_ISDIR(inode->i_mode)) BUG(); - mlog(0, "open called on inode %lu, flags 0x%x\n", inode->i_ino, + mlog(0, "open called on inode %llu, flags 0x%x\n", inode->i_ino, file->f_flags); status = dlmfs_decode_open_flags(file->f_flags, &level, &flags); @@ -170,7 +170,7 @@ static int dlmfs_file_release(struct inode *inode, if (S_ISDIR(inode->i_mode)) BUG(); - mlog(0, "close called on inode %lu\n", inode->i_ino); + mlog(0, "close called on inode %llu\n", inode->i_ino); if (fp) { level = fp->fp_lock_level; @@ -242,7 +242,7 @@ static ssize_t dlmfs_file_write(struct file *filp, int bytes_left; struct inode *inode = file_inode(filp); - mlog(0, "inode %lu, count = %zu, *ppos = %llu\n", + mlog(0, "inode %llu, count = %zu, *ppos = %llu\n", inode->i_ino, count, *ppos); if (*ppos >= DLM_LVB_LEN) @@ -301,7 +301,7 @@ static void dlmfs_evict_inode(struct inode *inode) clear_inode(inode); - mlog(0, "inode %lu\n", inode->i_ino); + mlog(0, "inode %llu\n", inode->i_ino); ip = DLMFS_I(inode); lockres = &ip->ip_lockres; @@ -490,7 +490,7 @@ static int dlmfs_unlink(struct inode *dir, int status; struct inode *inode = d_inode(dentry); - mlog(0, "unlink inode %lu\n", inode->i_ino); + mlog(0, "unlink inode %llu\n", inode->i_ino); /* if there are no current holders, or none that are waiting * to acquire a lock, this basically destroys our lockres. */ diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index d68229422dda..eb5dcd17d437 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c @@ -291,7 +291,7 @@ static int ocfs2_last_eb_is_empty(struct inode *inode, if (el->l_tree_depth) { ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in leaf block %llu\n", + "Inode %llu has non zero tree depth in leaf block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); ret = -EROFS; @@ -427,7 +427,7 @@ static int ocfs2_get_clusters_nocache(struct inode *inode, if (el->l_tree_depth) { ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in leaf block %llu\n", + "Inode %llu has non zero tree depth in leaf block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); ret = -EROFS; @@ -437,7 +437,7 @@ static int ocfs2_get_clusters_nocache(struct inode *inode, if (le16_to_cpu(el->l_next_free_rec) > le16_to_cpu(el->l_count)) { ocfs2_error(inode->i_sb, - "Inode %lu has an invalid extent (next_free_rec %u, count %u)\n", + "Inode %llu has an invalid extent (next_free_rec %u, count %u)\n", inode->i_ino, le16_to_cpu(el->l_next_free_rec), le16_to_cpu(el->l_count)); @@ -472,7 +472,7 @@ static int ocfs2_get_clusters_nocache(struct inode *inode, if (!rec->e_blkno) { ocfs2_error(inode->i_sb, - "Inode %lu has bad extent record (%u, %u, 0)\n", + "Inode %llu has bad extent record (%u, %u, 0)\n", inode->i_ino, le32_to_cpu(rec->e_cpos), ocfs2_rec_clusters(el, rec)); @@ -561,7 +561,7 @@ int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, if (el->l_tree_depth) { ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in xattr leaf block %llu\n", + "Inode %llu has non zero tree depth in xattr leaf block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); ret = -EROFS; @@ -580,7 +580,7 @@ int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, if (!rec->e_blkno) { ocfs2_error(inode->i_sb, - "Inode %lu has bad extent record (%u, %u, 0) in xattr\n", + "Inode %llu has bad extent record (%u, %u, 0) in xattr\n", inode->i_ino, le32_to_cpu(rec->e_cpos), ocfs2_rec_clusters(el, rec)); diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index a2ccd8011706..a510a0eb1adc 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c @@ -1196,7 +1196,7 @@ static void ocfs2_clear_inode(struct inode *inode) inode->i_nlink); mlog_bug_on_msg(osb == NULL, - "Inode=%lu\n", inode->i_ino); + "Inode=%llu\n", inode->i_ino); dquot_drop(inode); diff --git a/fs/ocfs2/quota_local.c b/fs/ocfs2/quota_local.c index c4e0117d8977..269b0f27d567 100644 --- a/fs/ocfs2/quota_local.c +++ b/fs/ocfs2/quota_local.c @@ -471,7 +471,7 @@ static int ocfs2_recover_local_quota_file(struct inode *lqinode, qsize_t spacechange, inodechange; unsigned int memalloc; - trace_ocfs2_recover_local_quota_file((unsigned long)lqinode->i_ino, type); + trace_ocfs2_recover_local_quota_file(lqinode->i_ino, type); list_for_each_entry_safe(rchunk, next, &(rec->r_list[type]), rc_list) { chunk = rchunk->rc_chunk; diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c index c1cdececdfa4..6d7f44d3e929 100644 --- a/fs/ocfs2/refcounttree.c +++ b/fs/ocfs2/refcounttree.c @@ -2341,7 +2341,7 @@ static int ocfs2_mark_extent_refcounted(struct inode *inode, cpos, len, phys); if (!ocfs2_refcount_tree(OCFS2_SB(inode->i_sb))) { - ret = ocfs2_error(inode->i_sb, "Inode %lu want to use refcount tree, but the feature bit is not set in the super block\n", + ret = ocfs2_error(inode->i_sb, "Inode %llu want to use refcount tree, but the feature bit is not set in the super block\n", inode->i_ino); goto out; } @@ -2524,7 +2524,7 @@ int ocfs2_prepare_refcount_change_for_del(struct inode *inode, u64 start_cpos = ocfs2_blocks_to_clusters(inode->i_sb, phys_blkno); if (!ocfs2_refcount_tree(OCFS2_SB(inode->i_sb))) { - ret = ocfs2_error(inode->i_sb, "Inode %lu want to use refcount tree, but the feature bit is not set in the super block\n", + ret = ocfs2_error(inode->i_sb, "Inode %llu want to use refcount tree, but the feature bit is not set in the super block\n", inode->i_ino); goto out; } @@ -2650,7 +2650,7 @@ static int ocfs2_refcount_cal_cow_clusters(struct inode *inode, if (el->l_tree_depth) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in leaf block %llu\n", + "Inode %llu has non zero tree depth in leaf block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); goto out; @@ -2662,7 +2662,7 @@ static int ocfs2_refcount_cal_cow_clusters(struct inode *inode, rec = &el->l_recs[i]; if (ocfs2_is_empty_extent(rec)) { - mlog_bug_on_msg(i != 0, "Inode %lu has empty record in " + mlog_bug_on_msg(i != 0, "Inode %llu has empty record in " "index %d\n", inode->i_ino, i); continue; } @@ -3325,7 +3325,7 @@ static int ocfs2_replace_cow(struct ocfs2_cow_context *context) struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); if (!ocfs2_refcount_tree(osb)) { - return ocfs2_error(inode->i_sb, "Inode %lu want to use refcount tree, but the feature bit is not set in the super block\n", + return ocfs2_error(inode->i_sb, "Inode %llu want to use refcount tree, but the feature bit is not set in the super block\n", inode->i_ino); } diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 42ee5db362d3..4d55ad963ac5 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c @@ -3741,7 +3741,7 @@ static int ocfs2_xattr_get_rec(struct inode *inode, if (el->l_tree_depth) { ret = ocfs2_error(inode->i_sb, - "Inode %lu has non zero tree depth in xattr tree block %llu\n", + "Inode %llu has non zero tree depth in xattr tree block %llu\n", inode->i_ino, (unsigned long long)eb_bh->b_blocknr); goto out; @@ -3758,7 +3758,7 @@ static int ocfs2_xattr_get_rec(struct inode *inode, } if (!e_blkno) { - ret = ocfs2_error(inode->i_sb, "Inode %lu has bad extent record (%u, %u, 0) in xattr\n", + ret = ocfs2_error(inode->i_sb, "Inode %llu has bad extent record (%u, %u, 0) in xattr\n", inode->i_ino, le32_to_cpu(rec->e_cpos), ocfs2_rec_clusters(el, rec)); |
