Update NFS for u64 i_ino: - Simplify nfs_fileid_to_ino_t() to return u64 directly, since i_ino can now store a full 64-bit fileid without folding on 32-bit - Update nfs_fattr_to_ino_t() to return u64 - Update format strings from %lu/%lx to %llu/%llx - Remove unnecessary (unsigned long) casts on i_ino Signed-off-by: Jeff Layton --- fs/nfs/dir.c | 20 ++++++++++---------- fs/nfs/file.c | 8 ++++---- fs/nfs/filelayout/filelayout.c | 8 ++++---- fs/nfs/flexfilelayout/flexfilelayout.c | 8 ++++---- fs/nfs/inode.c | 10 +++++----- fs/nfs/nfs4proc.c | 4 ++-- fs/nfs/pnfs.c | 12 ++++++------ include/linux/nfs_fs.h | 7 ++----- 8 files changed, 37 insertions(+), 40 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 2402f57c8e7d932c4656a1439f1deff7954e0dc4..ddc3789363a5f8a2ef0169e37aa2292d075092c4 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1906,7 +1906,7 @@ static int nfs_weak_revalidate(struct dentry *dentry, unsigned int flags) } error = nfs_lookup_verify_inode(inode, flags); - dfprintk(LOOKUPCACHE, "NFS: %s: inode %lu is %s\n", + dfprintk(LOOKUPCACHE, "NFS: %s: inode %llu is %s\n", __func__, inode->i_ino, error ? "invalid" : "valid"); return !error; } @@ -2121,7 +2121,7 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry, /* Expect a negative dentry */ BUG_ON(d_inode(dentry)); - dfprintk(VFS, "NFS: atomic_open(%s/%lu), %pd\n", + dfprintk(VFS, "NFS: atomic_open(%s/%llu), %pd\n", dir->i_sb->s_id, dir->i_ino, dentry); err = nfs_check_flags(open_flags); @@ -2404,7 +2404,7 @@ static int nfs_do_create(struct inode *dir, struct dentry *dentry, open_flags |= O_CREAT; - dfprintk(VFS, "NFS: create(%s/%lu), %pd\n", + dfprintk(VFS, "NFS: create(%s/%llu), %pd\n", dir->i_sb->s_id, dir->i_ino, dentry); attr.ia_mode = mode; @@ -2442,7 +2442,7 @@ nfs_mknod(struct mnt_idmap *idmap, struct inode *dir, struct iattr attr; int status; - dfprintk(VFS, "NFS: mknod(%s/%lu), %pd\n", + dfprintk(VFS, "NFS: mknod(%s/%llu), %pd\n", dir->i_sb->s_id, dir->i_ino, dentry); attr.ia_mode = mode; @@ -2469,7 +2469,7 @@ struct dentry *nfs_mkdir(struct mnt_idmap *idmap, struct inode *dir, struct iattr attr; struct dentry *ret; - dfprintk(VFS, "NFS: mkdir(%s/%lu), %pd\n", + dfprintk(VFS, "NFS: mkdir(%s/%llu), %pd\n", dir->i_sb->s_id, dir->i_ino, dentry); attr.ia_valid = ATTR_MODE; @@ -2507,7 +2507,7 @@ int nfs_rmdir(struct inode *dir, struct dentry *dentry) { int error; - dfprintk(VFS, "NFS: rmdir(%s/%lu), %pd\n", + dfprintk(VFS, "NFS: rmdir(%s/%llu), %pd\n", dir->i_sb->s_id, dir->i_ino, dentry); trace_nfs_rmdir_enter(dir, dentry); @@ -2578,7 +2578,7 @@ int nfs_unlink(struct inode *dir, struct dentry *dentry) { int error; - dfprintk(VFS, "NFS: unlink(%s/%lu, %pd)\n", dir->i_sb->s_id, + dfprintk(VFS, "NFS: unlink(%s/%llu, %pd)\n", dir->i_sb->s_id, dir->i_ino, dentry); trace_nfs_unlink_enter(dir, dentry); @@ -2638,7 +2638,7 @@ int nfs_symlink(struct mnt_idmap *idmap, struct inode *dir, unsigned int pathlen = strlen(symname); int error; - dfprintk(VFS, "NFS: symlink(%s/%lu, %pd, %s)\n", dir->i_sb->s_id, + dfprintk(VFS, "NFS: symlink(%s/%llu, %pd, %s)\n", dir->i_sb->s_id, dir->i_ino, dentry, symname); if (pathlen > PAGE_SIZE) @@ -2660,7 +2660,7 @@ int nfs_symlink(struct mnt_idmap *idmap, struct inode *dir, error = NFS_PROTO(dir)->symlink(dir, dentry, folio, pathlen, &attr); trace_nfs_symlink_exit(dir, dentry, error); if (error != 0) { - dfprintk(VFS, "NFS: symlink(%s/%lu, %pd, %s) error %d\n", + dfprintk(VFS, "NFS: symlink(%s/%llu, %pd, %s) error %d\n", dir->i_sb->s_id, dir->i_ino, dentry, symname, error); d_drop(dentry); @@ -3414,7 +3414,7 @@ int nfs_permission(struct mnt_idmap *idmap, if (!res && (mask & MAY_EXEC)) res = nfs_execute_ok(inode, mask); - dfprintk(VFS, "NFS: permission(%s/%lu), mask=0x%x, res=%d\n", + dfprintk(VFS, "NFS: permission(%s/%llu), mask=0x%x, res=%d\n", inode->i_sb->s_id, inode->i_ino, mask, res); return res; out_notsup: diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 5d08b6409c284f1ee78f1c2fa327e447eee1ab69..25048a3c236436f334c87e2d58614f8af8929560 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -391,7 +391,7 @@ static int nfs_write_begin(const struct kiocb *iocb, trace_nfs_write_begin(file_inode(file), pos, len); - dfprintk(PAGECACHE, "NFS: write_begin(%pD2(%lu), %u@%lld)\n", + dfprintk(PAGECACHE, "NFS: write_begin(%pD2(%llu), %u@%lld)\n", file, mapping->host->i_ino, len, (long long) pos); nfs_truncate_last_folio(mapping, i_size_read(mapping->host), pos); @@ -432,7 +432,7 @@ static int nfs_write_end(const struct kiocb *iocb, int status; trace_nfs_write_end(file_inode(file), pos, len); - dfprintk(PAGECACHE, "NFS: write_end(%pD2(%lu), %u@%lld)\n", + dfprintk(PAGECACHE, "NFS: write_end(%pD2(%llu), %u@%lld)\n", file, mapping->host->i_ino, len, (long long) pos); /* @@ -557,7 +557,7 @@ static int nfs_launder_folio(struct folio *folio) struct inode *inode = folio->mapping->host; int ret; - dfprintk(PAGECACHE, "NFS: launder_folio(%ld, %llu)\n", + dfprintk(PAGECACHE, "NFS: launder_folio(%llu, %llu)\n", inode->i_ino, folio_pos(folio)); folio_wait_private_2(folio); /* [DEPRECATED] */ @@ -647,7 +647,7 @@ static vm_fault_t nfs_vm_page_mkwrite(struct vm_fault *vmf) struct address_space *mapping; struct folio *folio = page_folio(vmf->page); - dfprintk(PAGECACHE, "NFS: vm_page_mkwrite(%pD2(%lu), offset %lld)\n", + dfprintk(PAGECACHE, "NFS: vm_page_mkwrite(%pD2(%llu), offset %lld)\n", filp, filp->f_mapping->host->i_ino, (long long)folio_pos(folio)); diff --git a/fs/nfs/filelayout/filelayout.c b/fs/nfs/filelayout/filelayout.c index 90a11afa5d05423bb289c7f2020ef3b82707a79c..e85380e3b11d7271a9b795e62840074834d77a72 100644 --- a/fs/nfs/filelayout/filelayout.c +++ b/fs/nfs/filelayout/filelayout.c @@ -241,7 +241,7 @@ filelayout_set_layoutcommit(struct nfs_pgio_header *hdr) /* Note: if the write is unstable, don't set end_offs until commit */ pnfs_set_layoutcommit(hdr->inode, hdr->lseg, end_offs); - dprintk("%s inode %lu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, + dprintk("%s inode %llu pls_end_pos %lu\n", __func__, hdr->inode->i_ino, (unsigned long) NFS_I(hdr->inode)->layout->plh_lwb); } @@ -456,7 +456,7 @@ filelayout_read_pagelist(struct nfs_pgio_header *hdr) u32 j, idx; struct nfs_fh *fh; - dprintk("--> %s ino %lu pgbase %u req %zu@%llu\n", + dprintk("--> %s ino %llu pgbase %u req %zu@%llu\n", __func__, hdr->inode->i_ino, hdr->args.pgbase, (size_t)hdr->args.count, offset); @@ -514,7 +514,7 @@ filelayout_write_pagelist(struct nfs_pgio_header *hdr, int sync) if (IS_ERR(ds_clnt)) return PNFS_NOT_ATTEMPTED; - dprintk("%s ino %lu sync %d req %zu@%llu DS: %s cl_count %d\n", + dprintk("%s ino %llu sync %d req %zu@%llu DS: %s cl_count %d\n", __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, offset, ds->ds_remotestr, refcount_read(&ds->ds_clp->cl_count)); @@ -1001,7 +1001,7 @@ static int filelayout_initiate_commit(struct nfs_commit_data *data, int how) if (IS_ERR(ds_clnt)) goto out_err; - dprintk("%s ino %lu, how %d cl_count %d\n", __func__, + dprintk("%s ino %llu, how %d cl_count %d\n", __func__, data->inode->i_ino, how, refcount_read(&ds->ds_clp->cl_count)); data->commit_done_cb = filelayout_commit_done_cb; refcount_inc(&ds->ds_clp->cl_count); diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c index f67773d52830d2ab4d12dd04caccc2077d4105e0..8b1559171fe3977f1b8461db6266c8c0d6c51ba5 100644 --- a/fs/nfs/flexfilelayout/flexfilelayout.c +++ b/fs/nfs/flexfilelayout/flexfilelayout.c @@ -1631,7 +1631,7 @@ ff_layout_set_layoutcommit(struct inode *inode, return; pnfs_set_layoutcommit(inode, lseg, end_offset); - dprintk("%s inode %lu pls_end_pos %llu\n", __func__, inode->i_ino, + dprintk("%s inode %llu pls_end_pos %llu\n", __func__, inode->i_ino, (unsigned long long) NFS_I(inode)->layout->plh_lwb); } @@ -2136,7 +2136,7 @@ ff_layout_read_pagelist(struct nfs_pgio_header *hdr) u32 dss_id; bool ds_fatal_error = false; - dprintk("--> %s ino %lu pgbase %u req %zu@%llu\n", + dprintk("--> %s ino %llu pgbase %u req %zu@%llu\n", __func__, hdr->inode->i_ino, hdr->args.pgbase, (size_t)hdr->args.count, offset); @@ -2245,7 +2245,7 @@ ff_layout_write_pagelist(struct nfs_pgio_header *hdr, int sync) vers = nfs4_ff_layout_ds_version(mirror, dss_id); - dprintk("%s ino %lu sync %d req %zu@%llu DS: %s cl_count %d vers %d\n", + dprintk("%s ino %llu sync %d req %zu@%llu DS: %s cl_count %d vers %d\n", __func__, hdr->inode->i_ino, sync, (size_t) hdr->args.count, offset, ds->ds_remotestr, refcount_read(&ds->ds_clp->cl_count), vers); @@ -2336,7 +2336,7 @@ static int ff_layout_initiate_commit(struct nfs_commit_data *data, int how) vers = nfs4_ff_layout_ds_version(mirror, dss_id); - dprintk("%s ino %lu, how %d cl_count %d vers %d\n", __func__, + dprintk("%s ino %llu, how %d cl_count %d vers %d\n", __func__, data->inode->i_ino, how, refcount_read(&ds->ds_clp->cl_count), vers); data->commit_done_cb = ff_layout_commit_done_cb; diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 4786343eeee0f874aa1f31ace2f35fdcb83fc7a6..38c7b79e76b3f9eb21d325b98708fe67d159076f 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -66,10 +66,10 @@ static int nfs_update_inode(struct inode *, struct nfs_fattr *); static struct kmem_cache * nfs_inode_cachep; -static inline unsigned long +static inline u64 nfs_fattr_to_ino_t(struct nfs_fattr *fattr) { - return nfs_fileid_to_ino_t(fattr->fileid); + return fattr->fileid; } int nfs_wait_bit_killable(struct wait_bit_key *key, int mode) @@ -2258,7 +2258,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) bool attr_changed = false; bool have_delegation; - dfprintk(VFS, "NFS: %s(%s/%lu fh_crc=0x%08x ct=%d info=0x%llx)\n", + dfprintk(VFS, "NFS: %s(%s/%llu fh_crc=0x%08x ct=%d info=0x%llx)\n", __func__, inode->i_sb->s_id, inode->i_ino, nfs_display_fhandle_hash(NFS_FH(inode)), icount_read(inode), fattr->valid); @@ -2288,7 +2288,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) /* * Big trouble! The inode has become a different object. */ - printk(KERN_DEBUG "NFS: %s: inode %lu mode changed, %07o to %07o\n", + printk(KERN_DEBUG "NFS: %s: inode %llu mode changed, %07o to %07o\n", __func__, inode->i_ino, inode->i_mode, fattr->mode); goto out_err; } @@ -2358,7 +2358,7 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) if (S_ISDIR(inode->i_mode)) nfs_force_lookup_revalidate(inode); attr_changed = true; - dprintk("NFS: change_attr change on server for file %s/%ld\n", + dprintk("NFS: change_attr change on server for file %s/%lld\n", inode->i_sb->s_id, inode->i_ino); } else if (!have_delegation) { diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 91bcf67bd743f72a008a9dcde29207bf7a36c407..d839a97df822abb9fb0efd25f3402fcca82d4038 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -4714,7 +4714,7 @@ static int _nfs4_proc_lookupp(struct inode *inode, nfs_fattr_init(fattr); nfs4_init_sequence(server->nfs_client, &args.seq_args, &res.seq_res, 0, 0); - dprintk("NFS call lookupp ino=0x%lx\n", inode->i_ino); + dprintk("NFS call lookupp ino=0x%llx\n", inode->i_ino); status = nfs4_do_call_sync(clnt, server, &msg, &args.seq_args, &res.seq_res, task_flags); dprintk("NFS reply lookupp: %d\n", status); @@ -10019,7 +10019,7 @@ nfs4_proc_layoutcommit(struct nfs4_layoutcommit_data *data, bool sync) int status = 0; dprintk("NFS: initiating layoutcommit call. sync %d " - "lbw: %llu inode %lu\n", sync, + "lbw: %llu inode %llu\n", sync, data->args.lastbytewritten, data->args.inode->i_ino); diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c index bc13d1e69449ce9bb3ed3ef0bbff06dfab5c60b5..e79deb9bf664df3424d9c26d3390799969d0499e 100644 --- a/fs/nfs/pnfs.c +++ b/fs/nfs/pnfs.c @@ -891,7 +891,7 @@ pnfs_layout_free_bulk_destroy_list(struct list_head *layout_list, while (!list_empty(layout_list)) { lo = list_entry(layout_list->next, struct pnfs_layout_hdr, plh_bulk_destroy); - dprintk("%s freeing layout for inode %lu\n", __func__, + dprintk("%s freeing layout for inode %llu\n", __func__, lo->plh_inode->i_ino); inode = lo->plh_inode; @@ -1440,7 +1440,7 @@ _pnfs_return_layout(struct inode *ino) int status = 0; bool send, valid_layout; - dprintk("NFS: %s for inode %lu\n", __func__, ino->i_ino); + dprintk("NFS: %s for inode %llu\n", __func__, ino->i_ino); spin_lock(&ino->i_lock); lo = nfsi->layout; @@ -3055,7 +3055,7 @@ pnfs_try_to_write_data(struct nfs_pgio_header *hdr, hdr->mds_ops = call_ops; - dprintk("%s: Writing ino:%lu %u@%llu (how %d)\n", __func__, + dprintk("%s: Writing ino:%llu %u@%llu (how %d)\n", __func__, inode->i_ino, hdr->args.count, hdr->args.offset, how); trypnfs = nfss->pnfs_curr_ld->write_pagelist(hdr, how); if (trypnfs != PNFS_NOT_ATTEMPTED) @@ -3181,7 +3181,7 @@ pnfs_try_to_read_data(struct nfs_pgio_header *hdr, hdr->mds_ops = call_ops; - dprintk("%s: Reading ino:%lu %u@%llu\n", + dprintk("%s: Reading ino:%llu %u@%llu\n", __func__, inode->i_ino, hdr->args.count, hdr->args.offset); trypnfs = nfss->pnfs_curr_ld->read_pagelist(hdr); @@ -3314,7 +3314,7 @@ pnfs_set_layoutcommit(struct inode *inode, struct pnfs_layout_segment *lseg, if (!test_and_set_bit(NFS_INO_LAYOUTCOMMIT, &nfsi->flags)) { nfsi->layout->plh_lwb = end_pos; mark_as_dirty = true; - dprintk("%s: Set layoutcommit for inode %lu ", + dprintk("%s: Set layoutcommit for inode %llu ", __func__, inode->i_ino); } else if (end_pos > nfsi->layout->plh_lwb) nfsi->layout->plh_lwb = end_pos; @@ -3363,7 +3363,7 @@ pnfs_layoutcommit_inode(struct inode *inode, bool sync) if (!pnfs_layoutcommit_outstanding(inode)) return 0; - dprintk("--> %s inode %lu\n", __func__, inode->i_ino); + dprintk("--> %s inode %llu\n", __func__, inode->i_ino); status = -EAGAIN; if (test_and_set_bit(NFS_INO_LAYOUTCOMMITTING, &nfsi->flags)) { diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 8dd79a3f3d662bfe8ef8f72bb88ad1e2cd40527e..0e6d03c10c3de91cac4cd4d08c961e171cbf9a41 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -667,13 +667,10 @@ static inline loff_t nfs_size_to_loff_t(__u64 size) return min_t(u64, size, OFFSET_MAX); } -static inline ino_t +static inline u64 nfs_fileid_to_ino_t(u64 fileid) { - ino_t ino = (ino_t) fileid; - if (sizeof(ino_t) < sizeof(u64)) - ino ^= fileid >> (sizeof(u64)-sizeof(ino_t)) * 8; - return ino; + return fileid; } static inline void nfs_ooo_clear(struct nfs_inode *nfsi) -- 2.53.0