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 <[email protected]>
---
 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

Reply via email to