aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2018-10-19 19:57:57 -0400
committerDavid Howells <dhowells@redhat.com>2018-10-23 19:41:08 -0400
commit3b6492df4153b8550d347dfc581856138678a231 (patch)
tree2a4acc9c8cef93e940520369f61034485f4eb434
parent2a0b4f64c9edcdcb67306f26d9d08ef982cb0ccd (diff)
afs: Increase to 64-bit volume ID and 96-bit vnode ID for YFS
Increase the sizes of the volume ID to 64 bits and the vnode ID (inode number equivalent) to 96 bits to allow the support of YFS. This requires the iget comparator to check the vnode->fid rather than i_ino and i_generation as i_ino is not sufficiently capacious. It also requires this data to be placed into the vnode cache key for fscache. For the moment, just discard the top 32 bits of the vnode ID when returning it though stat. Signed-off-by: David Howells <dhowells@redhat.com>
-rw-r--r--fs/afs/afs.h11
-rw-r--r--fs/afs/cache.c2
-rw-r--r--fs/afs/callback.c2
-rw-r--r--fs/afs/dir.c24
-rw-r--r--fs/afs/dynroot.c2
-rw-r--r--fs/afs/file.c8
-rw-r--r--fs/afs/flock.c22
-rw-r--r--fs/afs/fsclient.c24
-rw-r--r--fs/afs/inode.c31
-rw-r--r--fs/afs/proc.c2
-rw-r--r--fs/afs/rotate.c2
-rw-r--r--fs/afs/security.c6
-rw-r--r--fs/afs/super.c5
-rw-r--r--fs/afs/volume.c2
-rw-r--r--fs/afs/write.c18
-rw-r--r--fs/afs/xattr.c2
-rw-r--r--include/trace/events/afs.h4
17 files changed, 86 insertions, 81 deletions
diff --git a/fs/afs/afs.h b/fs/afs/afs.h
index b4ff1f7ae4ab..c23b31b742fa 100644
--- a/fs/afs/afs.h
+++ b/fs/afs/afs.h
@@ -23,9 +23,9 @@
23#define AFSPATHMAX 1024 /* Maximum length of a pathname plus NUL */ 23#define AFSPATHMAX 1024 /* Maximum length of a pathname plus NUL */
24#define AFSOPAQUEMAX 1024 /* Maximum length of an opaque field */ 24#define AFSOPAQUEMAX 1024 /* Maximum length of an opaque field */
25 25
26typedef unsigned afs_volid_t; 26typedef u64 afs_volid_t;
27typedef unsigned afs_vnodeid_t; 27typedef u64 afs_vnodeid_t;
28typedef unsigned long long afs_dataversion_t; 28typedef u64 afs_dataversion_t;
29 29
30typedef enum { 30typedef enum {
31 AFSVL_RWVOL, /* read/write volume */ 31 AFSVL_RWVOL, /* read/write volume */
@@ -52,8 +52,9 @@ typedef enum {
52 */ 52 */
53struct afs_fid { 53struct afs_fid {
54 afs_volid_t vid; /* volume ID */ 54 afs_volid_t vid; /* volume ID */
55 afs_vnodeid_t vnode; /* file index within volume */ 55 afs_vnodeid_t vnode; /* Lower 64-bits of file index within volume */
56 unsigned unique; /* unique ID number (file index version) */ 56 u32 vnode_hi; /* Upper 32-bits of file index */
57 u32 unique; /* unique ID number (file index version) */
57}; 58};
58 59
59/* 60/*
diff --git a/fs/afs/cache.c b/fs/afs/cache.c
index b1c31ec4523a..f6d0a21e8052 100644
--- a/fs/afs/cache.c
+++ b/fs/afs/cache.c
@@ -49,7 +49,7 @@ static enum fscache_checkaux afs_vnode_cache_check_aux(void *cookie_netfs_data,
49 struct afs_vnode *vnode = cookie_netfs_data; 49 struct afs_vnode *vnode = cookie_netfs_data;
50 struct afs_vnode_cache_aux aux; 50 struct afs_vnode_cache_aux aux;
51 51
52 _enter("{%x,%x,%llx},%p,%u", 52 _enter("{%llx,%x,%llx},%p,%u",
53 vnode->fid.vnode, vnode->fid.unique, vnode->status.data_version, 53 vnode->fid.vnode, vnode->fid.unique, vnode->status.data_version,
54 buffer, buflen); 54 buffer, buflen);
55 55
diff --git a/fs/afs/callback.c b/fs/afs/callback.c
index 5f261fbf2182..8698198ad427 100644
--- a/fs/afs/callback.c
+++ b/fs/afs/callback.c
@@ -310,7 +310,7 @@ void afs_break_callbacks(struct afs_server *server, size_t count,
310 /* TODO: Sort the callback break list by volume ID */ 310 /* TODO: Sort the callback break list by volume ID */
311 311
312 for (; count > 0; callbacks++, count--) { 312 for (; count > 0; callbacks++, count--) {
313 _debug("- Fid { vl=%08x n=%u u=%u } CB { v=%u x=%u t=%u }", 313 _debug("- Fid { vl=%08llx n=%llu u=%u } CB { v=%u x=%u t=%u }",
314 callbacks->fid.vid, 314 callbacks->fid.vid,
315 callbacks->fid.vnode, 315 callbacks->fid.vnode,
316 callbacks->fid.unique, 316 callbacks->fid.unique,
diff --git a/fs/afs/dir.c b/fs/afs/dir.c
index 78f9754fd03d..024b7cf7441c 100644
--- a/fs/afs/dir.c
+++ b/fs/afs/dir.c
@@ -552,7 +552,7 @@ static int afs_do_lookup_one(struct inode *dir, struct dentry *dentry,
552 } 552 }
553 553
554 *fid = cookie.fid; 554 *fid = cookie.fid;
555 _leave(" = 0 { vn=%u u=%u }", fid->vnode, fid->unique); 555 _leave(" = 0 { vn=%llu u=%u }", fid->vnode, fid->unique);
556 return 0; 556 return 0;
557} 557}
558 558
@@ -830,7 +830,7 @@ static struct dentry *afs_lookup(struct inode *dir, struct dentry *dentry,
830 struct key *key; 830 struct key *key;
831 int ret; 831 int ret;
832 832
833 _enter("{%x:%u},%p{%pd},", 833 _enter("{%llx:%llu},%p{%pd},",
834 dvnode->fid.vid, dvnode->fid.vnode, dentry, dentry); 834 dvnode->fid.vid, dvnode->fid.vnode, dentry, dentry);
835 835
836 ASSERTCMP(d_inode(dentry), ==, NULL); 836 ASSERTCMP(d_inode(dentry), ==, NULL);
@@ -900,7 +900,7 @@ static int afs_d_revalidate(struct dentry *dentry, unsigned int flags)
900 900
901 if (d_really_is_positive(dentry)) { 901 if (d_really_is_positive(dentry)) {
902 vnode = AFS_FS_I(d_inode(dentry)); 902 vnode = AFS_FS_I(d_inode(dentry));
903 _enter("{v={%x:%u} n=%pd fl=%lx},", 903 _enter("{v={%llx:%llu} n=%pd fl=%lx},",
904 vnode->fid.vid, vnode->fid.vnode, dentry, 904 vnode->fid.vid, vnode->fid.vnode, dentry,
905 vnode->flags); 905 vnode->flags);
906 } else { 906 } else {
@@ -969,7 +969,7 @@ static int afs_d_revalidate(struct dentry *dentry, unsigned int flags)
969 /* if the vnode ID has changed, then the dirent points to a 969 /* if the vnode ID has changed, then the dirent points to a
970 * different file */ 970 * different file */
971 if (fid.vnode != vnode->fid.vnode) { 971 if (fid.vnode != vnode->fid.vnode) {
972 _debug("%pd: dirent changed [%u != %u]", 972 _debug("%pd: dirent changed [%llu != %llu]",
973 dentry, fid.vnode, 973 dentry, fid.vnode,
974 vnode->fid.vnode); 974 vnode->fid.vnode);
975 goto not_found; 975 goto not_found;
@@ -1108,7 +1108,7 @@ static int afs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
1108 1108
1109 mode |= S_IFDIR; 1109 mode |= S_IFDIR;
1110 1110
1111 _enter("{%x:%u},{%pd},%ho", 1111 _enter("{%llx:%llu},{%pd},%ho",
1112 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode); 1112 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode);
1113 1113
1114 key = afs_request_key(dvnode->volume->cell); 1114 key = afs_request_key(dvnode->volume->cell);
@@ -1178,7 +1178,7 @@ static int afs_rmdir(struct inode *dir, struct dentry *dentry)
1178 u64 data_version = dvnode->status.data_version; 1178 u64 data_version = dvnode->status.data_version;
1179 int ret; 1179 int ret;
1180 1180
1181 _enter("{%x:%u},{%pd}", 1181 _enter("{%llx:%llu},{%pd}",
1182 dvnode->fid.vid, dvnode->fid.vnode, dentry); 1182 dvnode->fid.vid, dvnode->fid.vnode, dentry);
1183 1183
1184 key = afs_request_key(dvnode->volume->cell); 1184 key = afs_request_key(dvnode->volume->cell);
@@ -1270,7 +1270,7 @@ static int afs_unlink(struct inode *dir, struct dentry *dentry)
1270 u64 data_version = dvnode->status.data_version; 1270 u64 data_version = dvnode->status.data_version;
1271 int ret; 1271 int ret;
1272 1272
1273 _enter("{%x:%u},{%pd}", 1273 _enter("{%llx:%llu},{%pd}",
1274 dvnode->fid.vid, dvnode->fid.vnode, dentry); 1274 dvnode->fid.vid, dvnode->fid.vnode, dentry);
1275 1275
1276 if (dentry->d_name.len >= AFSNAMEMAX) 1276 if (dentry->d_name.len >= AFSNAMEMAX)
@@ -1334,7 +1334,7 @@ static int afs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
1334 1334
1335 mode |= S_IFREG; 1335 mode |= S_IFREG;
1336 1336
1337 _enter("{%x:%u},{%pd},%ho,", 1337 _enter("{%llx:%llu},{%pd},%ho,",
1338 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode); 1338 dvnode->fid.vid, dvnode->fid.vnode, dentry, mode);
1339 1339
1340 ret = -ENAMETOOLONG; 1340 ret = -ENAMETOOLONG;
@@ -1397,7 +1397,7 @@ static int afs_link(struct dentry *from, struct inode *dir,
1397 dvnode = AFS_FS_I(dir); 1397 dvnode = AFS_FS_I(dir);
1398 data_version = dvnode->status.data_version; 1398 data_version = dvnode->status.data_version;
1399 1399
1400 _enter("{%x:%u},{%x:%u},{%pd}", 1400 _enter("{%llx:%llu},{%llx:%llu},{%pd}",
1401 vnode->fid.vid, vnode->fid.vnode, 1401 vnode->fid.vid, vnode->fid.vnode,
1402 dvnode->fid.vid, dvnode->fid.vnode, 1402 dvnode->fid.vid, dvnode->fid.vnode,
1403 dentry); 1403 dentry);
@@ -1468,7 +1468,7 @@ static int afs_symlink(struct inode *dir, struct dentry *dentry,
1468 u64 data_version = dvnode->status.data_version; 1468 u64 data_version = dvnode->status.data_version;
1469 int ret; 1469 int ret;
1470 1470
1471 _enter("{%x:%u},{%pd},%s", 1471 _enter("{%llx:%llu},{%pd},%s",
1472 dvnode->fid.vid, dvnode->fid.vnode, dentry, 1472 dvnode->fid.vid, dvnode->fid.vnode, dentry,
1473 content); 1473 content);
1474 1474
@@ -1544,7 +1544,7 @@ static int afs_rename(struct inode *old_dir, struct dentry *old_dentry,
1544 orig_data_version = orig_dvnode->status.data_version; 1544 orig_data_version = orig_dvnode->status.data_version;
1545 new_data_version = new_dvnode->status.data_version; 1545 new_data_version = new_dvnode->status.data_version;
1546 1546
1547 _enter("{%x:%u},{%x:%u},{%x:%u},{%pd}", 1547 _enter("{%llx:%llu},{%llx:%llu},{%llx:%llu},{%pd}",
1548 orig_dvnode->fid.vid, orig_dvnode->fid.vnode, 1548 orig_dvnode->fid.vid, orig_dvnode->fid.vnode,
1549 vnode->fid.vid, vnode->fid.vnode, 1549 vnode->fid.vid, vnode->fid.vnode,
1550 new_dvnode->fid.vid, new_dvnode->fid.vnode, 1550 new_dvnode->fid.vid, new_dvnode->fid.vnode,
@@ -1611,7 +1611,7 @@ static int afs_dir_releasepage(struct page *page, gfp_t gfp_flags)
1611{ 1611{
1612 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host); 1612 struct afs_vnode *dvnode = AFS_FS_I(page->mapping->host);
1613 1613
1614 _enter("{{%x:%u}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, page->index); 1614 _enter("{{%llx:%llu}[%lu]}", dvnode->fid.vid, dvnode->fid.vnode, page->index);
1615 1615
1616 set_page_private(page, 0); 1616 set_page_private(page, 0);
1617 ClearPagePrivate(page); 1617 ClearPagePrivate(page);
diff --git a/fs/afs/dynroot.c b/fs/afs/dynroot.c
index 0efed0a63080..a9ba81ddf154 100644
--- a/fs/afs/dynroot.c
+++ b/fs/afs/dynroot.c
@@ -62,7 +62,7 @@ struct inode *afs_try_auto_mntpt(struct dentry *dentry, struct inode *dir)
62 struct inode *inode; 62 struct inode *inode;
63 int ret = -ENOENT; 63 int ret = -ENOENT;
64 64
65 _enter("%p{%pd}, {%x:%u}", 65 _enter("%p{%pd}, {%llx:%llu}",
66 dentry, dentry, vnode->fid.vid, vnode->fid.vnode); 66 dentry, dentry, vnode->fid.vid, vnode->fid.vnode);
67 67
68 if (!test_bit(AFS_VNODE_AUTOCELL, &vnode->flags)) 68 if (!test_bit(AFS_VNODE_AUTOCELL, &vnode->flags))
diff --git a/fs/afs/file.c b/fs/afs/file.c
index 7d4f26198573..d6bc3f5d784b 100644
--- a/fs/afs/file.c
+++ b/fs/afs/file.c
@@ -121,7 +121,7 @@ int afs_open(struct inode *inode, struct file *file)
121 struct key *key; 121 struct key *key;
122 int ret; 122 int ret;
123 123
124 _enter("{%x:%u},", vnode->fid.vid, vnode->fid.vnode); 124 _enter("{%llx:%llu},", vnode->fid.vid, vnode->fid.vnode);
125 125
126 key = afs_request_key(vnode->volume->cell); 126 key = afs_request_key(vnode->volume->cell);
127 if (IS_ERR(key)) { 127 if (IS_ERR(key)) {
@@ -170,7 +170,7 @@ int afs_release(struct inode *inode, struct file *file)
170 struct afs_vnode *vnode = AFS_FS_I(inode); 170 struct afs_vnode *vnode = AFS_FS_I(inode);
171 struct afs_file *af = file->private_data; 171 struct afs_file *af = file->private_data;
172 172
173 _enter("{%x:%u},", vnode->fid.vid, vnode->fid.vnode); 173 _enter("{%llx:%llu},", vnode->fid.vid, vnode->fid.vnode);
174 174
175 if ((file->f_mode & FMODE_WRITE)) 175 if ((file->f_mode & FMODE_WRITE))
176 return vfs_fsync(file, 0); 176 return vfs_fsync(file, 0);
@@ -228,7 +228,7 @@ int afs_fetch_data(struct afs_vnode *vnode, struct key *key, struct afs_read *de
228 struct afs_fs_cursor fc; 228 struct afs_fs_cursor fc;
229 int ret; 229 int ret;
230 230
231 _enter("%s{%x:%u.%u},%x,,,", 231 _enter("%s{%llx:%llu.%u},%x,,,",
232 vnode->volume->name, 232 vnode->volume->name,
233 vnode->fid.vid, 233 vnode->fid.vid,
234 vnode->fid.vnode, 234 vnode->fid.vnode,
@@ -634,7 +634,7 @@ static int afs_releasepage(struct page *page, gfp_t gfp_flags)
634 struct afs_vnode *vnode = AFS_FS_I(page->mapping->host); 634 struct afs_vnode *vnode = AFS_FS_I(page->mapping->host);
635 unsigned long priv; 635 unsigned long priv;
636 636
637 _enter("{{%x:%u}[%lu],%lx},%x", 637 _enter("{{%llx:%llu}[%lu],%lx},%x",
638 vnode->fid.vid, vnode->fid.vnode, page->index, page->flags, 638 vnode->fid.vid, vnode->fid.vnode, page->index, page->flags,
639 gfp_flags); 639 gfp_flags);
640 640
diff --git a/fs/afs/flock.c b/fs/afs/flock.c
index dc62d15a964b..0568fd986821 100644
--- a/fs/afs/flock.c
+++ b/fs/afs/flock.c
@@ -29,7 +29,7 @@ static const struct file_lock_operations afs_lock_ops = {
29 */ 29 */
30void afs_lock_may_be_available(struct afs_vnode *vnode) 30void afs_lock_may_be_available(struct afs_vnode *vnode)
31{ 31{
32 _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); 32 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode);
33 33
34 queue_delayed_work(afs_lock_manager, &vnode->lock_work, 0); 34 queue_delayed_work(afs_lock_manager, &vnode->lock_work, 0);
35} 35}
@@ -76,7 +76,7 @@ static int afs_set_lock(struct afs_vnode *vnode, struct key *key,
76 struct afs_fs_cursor fc; 76 struct afs_fs_cursor fc;
77 int ret; 77 int ret;
78 78
79 _enter("%s{%x:%u.%u},%x,%u", 79 _enter("%s{%llx:%llu.%u},%x,%u",
80 vnode->volume->name, 80 vnode->volume->name,
81 vnode->fid.vid, 81 vnode->fid.vid,
82 vnode->fid.vnode, 82 vnode->fid.vnode,
@@ -107,7 +107,7 @@ static int afs_extend_lock(struct afs_vnode *vnode, struct key *key)
107 struct afs_fs_cursor fc; 107 struct afs_fs_cursor fc;
108 int ret; 108 int ret;
109 109
110 _enter("%s{%x:%u.%u},%x", 110 _enter("%s{%llx:%llu.%u},%x",
111 vnode->volume->name, 111 vnode->volume->name,
112 vnode->fid.vid, 112 vnode->fid.vid,
113 vnode->fid.vnode, 113 vnode->fid.vnode,
@@ -138,7 +138,7 @@ static int afs_release_lock(struct afs_vnode *vnode, struct key *key)
138 struct afs_fs_cursor fc; 138 struct afs_fs_cursor fc;
139 int ret; 139 int ret;
140 140
141 _enter("%s{%x:%u.%u},%x", 141 _enter("%s{%llx:%llu.%u},%x",
142 vnode->volume->name, 142 vnode->volume->name,
143 vnode->fid.vid, 143 vnode->fid.vid,
144 vnode->fid.vnode, 144 vnode->fid.vnode,
@@ -175,7 +175,7 @@ void afs_lock_work(struct work_struct *work)
175 struct key *key; 175 struct key *key;
176 int ret; 176 int ret;
177 177
178 _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); 178 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode);
179 179
180 spin_lock(&vnode->lock); 180 spin_lock(&vnode->lock);
181 181
@@ -192,7 +192,7 @@ again:
192 ret = afs_release_lock(vnode, vnode->lock_key); 192 ret = afs_release_lock(vnode, vnode->lock_key);
193 if (ret < 0) 193 if (ret < 0)
194 printk(KERN_WARNING "AFS:" 194 printk(KERN_WARNING "AFS:"
195 " Failed to release lock on {%x:%x} error %d\n", 195 " Failed to release lock on {%llx:%llx} error %d\n",
196 vnode->fid.vid, vnode->fid.vnode, ret); 196 vnode->fid.vid, vnode->fid.vnode, ret);
197 197
198 spin_lock(&vnode->lock); 198 spin_lock(&vnode->lock);
@@ -229,7 +229,7 @@ again:
229 key_put(key); 229 key_put(key);
230 230
231 if (ret < 0) 231 if (ret < 0)
232 pr_warning("AFS: Failed to extend lock on {%x:%x} error %d\n", 232 pr_warning("AFS: Failed to extend lock on {%llx:%llx} error %d\n",
233 vnode->fid.vid, vnode->fid.vnode, ret); 233 vnode->fid.vid, vnode->fid.vnode, ret);
234 234
235 spin_lock(&vnode->lock); 235 spin_lock(&vnode->lock);
@@ -430,7 +430,7 @@ static int afs_do_setlk(struct file *file, struct file_lock *fl)
430 struct key *key = afs_file_key(file); 430 struct key *key = afs_file_key(file);
431 int ret; 431 int ret;
432 432
433 _enter("{%x:%u},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type); 433 _enter("{%llx:%llu},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type);
434 434
435 /* only whole-file locks are supported */ 435 /* only whole-file locks are supported */
436 if (fl->fl_start != 0 || fl->fl_end != OFFSET_MAX) 436 if (fl->fl_start != 0 || fl->fl_end != OFFSET_MAX)
@@ -582,7 +582,7 @@ static int afs_do_unlk(struct file *file, struct file_lock *fl)
582 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file)); 582 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file));
583 int ret; 583 int ret;
584 584
585 _enter("{%x:%u},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type); 585 _enter("{%llx:%llu},%u", vnode->fid.vid, vnode->fid.vnode, fl->fl_type);
586 586
587 /* Flush all pending writes before doing anything with locks. */ 587 /* Flush all pending writes before doing anything with locks. */
588 vfs_fsync(file, 0); 588 vfs_fsync(file, 0);
@@ -639,7 +639,7 @@ int afs_lock(struct file *file, int cmd, struct file_lock *fl)
639{ 639{
640 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file)); 640 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file));
641 641
642 _enter("{%x:%u},%d,{t=%x,fl=%x,r=%Ld:%Ld}", 642 _enter("{%llx:%llu},%d,{t=%x,fl=%x,r=%Ld:%Ld}",
643 vnode->fid.vid, vnode->fid.vnode, cmd, 643 vnode->fid.vid, vnode->fid.vnode, cmd,
644 fl->fl_type, fl->fl_flags, 644 fl->fl_type, fl->fl_flags,
645 (long long) fl->fl_start, (long long) fl->fl_end); 645 (long long) fl->fl_start, (long long) fl->fl_end);
@@ -662,7 +662,7 @@ int afs_flock(struct file *file, int cmd, struct file_lock *fl)
662{ 662{
663 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file)); 663 struct afs_vnode *vnode = AFS_FS_I(locks_inode(file));
664 664
665 _enter("{%x:%u},%d,{t=%x,fl=%x}", 665 _enter("{%llx:%llu},%d,{t=%x,fl=%x}",
666 vnode->fid.vid, vnode->fid.vnode, cmd, 666 vnode->fid.vid, vnode->fid.vnode, cmd,
667 fl->fl_type, fl->fl_flags); 667 fl->fl_type, fl->fl_flags);
668 668
diff --git a/fs/afs/fsclient.c b/fs/afs/fsclient.c
index fe2e9e39b388..5e3027f21390 100644
--- a/fs/afs/fsclient.c
+++ b/fs/afs/fsclient.c
@@ -90,7 +90,7 @@ void afs_update_inode_from_status(struct afs_vnode *vnode,
90 if (!(flags & AFS_VNODE_NOT_YET_SET)) { 90 if (!(flags & AFS_VNODE_NOT_YET_SET)) {
91 if (expected_version && 91 if (expected_version &&
92 *expected_version != status->data_version) { 92 *expected_version != status->data_version) {
93 _debug("vnode modified %llx on {%x:%u} [exp %llx]", 93 _debug("vnode modified %llx on {%llx:%llu} [exp %llx]",
94 (unsigned long long) status->data_version, 94 (unsigned long long) status->data_version,
95 vnode->fid.vid, vnode->fid.vnode, 95 vnode->fid.vid, vnode->fid.vnode,
96 (unsigned long long) *expected_version); 96 (unsigned long long) *expected_version);
@@ -164,7 +164,7 @@ static int xdr_decode_AFSFetchStatus(struct afs_call *call,
164 if (type != status->type && 164 if (type != status->type &&
165 vnode && 165 vnode &&
166 !test_bit(AFS_VNODE_UNSET, &vnode->flags)) { 166 !test_bit(AFS_VNODE_UNSET, &vnode->flags)) {
167 pr_warning("Vnode %x:%x:%x changed type %u to %u\n", 167 pr_warning("Vnode %llx:%llx:%x changed type %u to %u\n",
168 vnode->fid.vid, 168 vnode->fid.vid,
169 vnode->fid.vnode, 169 vnode->fid.vnode,
170 vnode->fid.unique, 170 vnode->fid.unique,
@@ -389,7 +389,7 @@ static int afs_deliver_fs_fetch_status_vnode(struct afs_call *call)
389 if (ret < 0) 389 if (ret < 0)
390 return ret; 390 return ret;
391 391
392 _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); 392 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode);
393 393
394 /* unmarshall the reply once we've received all of it */ 394 /* unmarshall the reply once we've received all of it */
395 bp = call->buffer; 395 bp = call->buffer;
@@ -426,7 +426,7 @@ int afs_fs_fetch_file_status(struct afs_fs_cursor *fc, struct afs_volsync *volsy
426 struct afs_net *net = afs_v2net(vnode); 426 struct afs_net *net = afs_v2net(vnode);
427 __be32 *bp; 427 __be32 *bp;
428 428
429 _enter(",%x,{%x:%u},,", 429 _enter(",%x,{%llx:%llu},,",
430 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 430 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
431 431
432 call = afs_alloc_flat_call(net, &afs_RXFSFetchStatus_vnode, 432 call = afs_alloc_flat_call(net, &afs_RXFSFetchStatus_vnode,
@@ -1261,7 +1261,7 @@ static int afs_fs_store_data64(struct afs_fs_cursor *fc,
1261 struct afs_net *net = afs_v2net(vnode); 1261 struct afs_net *net = afs_v2net(vnode);
1262 __be32 *bp; 1262 __be32 *bp;
1263 1263
1264 _enter(",%x,{%x:%u},,", 1264 _enter(",%x,{%llx:%llu},,",
1265 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 1265 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
1266 1266
1267 call = afs_alloc_flat_call(net, &afs_RXFSStoreData64, 1267 call = afs_alloc_flat_call(net, &afs_RXFSStoreData64,
@@ -1318,7 +1318,7 @@ int afs_fs_store_data(struct afs_fs_cursor *fc, struct address_space *mapping,
1318 loff_t size, pos, i_size; 1318 loff_t size, pos, i_size;
1319 __be32 *bp; 1319 __be32 *bp;
1320 1320
1321 _enter(",%x,{%x:%u},,", 1321 _enter(",%x,{%llx:%llu},,",
1322 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 1322 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
1323 1323
1324 size = (loff_t)to - (loff_t)offset; 1324 size = (loff_t)to - (loff_t)offset;
@@ -1440,7 +1440,7 @@ static int afs_fs_setattr_size64(struct afs_fs_cursor *fc, struct iattr *attr)
1440 struct afs_net *net = afs_v2net(vnode); 1440 struct afs_net *net = afs_v2net(vnode);
1441 __be32 *bp; 1441 __be32 *bp;
1442 1442
1443 _enter(",%x,{%x:%u},,", 1443 _enter(",%x,{%llx:%llu},,",
1444 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 1444 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
1445 1445
1446 ASSERT(attr->ia_valid & ATTR_SIZE); 1446 ASSERT(attr->ia_valid & ATTR_SIZE);
@@ -1487,7 +1487,7 @@ static int afs_fs_setattr_size(struct afs_fs_cursor *fc, struct iattr *attr)
1487 struct afs_net *net = afs_v2net(vnode); 1487 struct afs_net *net = afs_v2net(vnode);
1488 __be32 *bp; 1488 __be32 *bp;
1489 1489
1490 _enter(",%x,{%x:%u},,", 1490 _enter(",%x,{%llx:%llu},,",
1491 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 1491 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
1492 1492
1493 ASSERT(attr->ia_valid & ATTR_SIZE); 1493 ASSERT(attr->ia_valid & ATTR_SIZE);
@@ -1536,7 +1536,7 @@ int afs_fs_setattr(struct afs_fs_cursor *fc, struct iattr *attr)
1536 if (attr->ia_valid & ATTR_SIZE) 1536 if (attr->ia_valid & ATTR_SIZE)
1537 return afs_fs_setattr_size(fc, attr); 1537 return afs_fs_setattr_size(fc, attr);
1538 1538
1539 _enter(",%x,{%x:%u},,", 1539 _enter(",%x,{%llx:%llu},,",
1540 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode); 1540 key_serial(fc->key), vnode->fid.vid, vnode->fid.vnode);
1541 1541
1542 call = afs_alloc_flat_call(net, &afs_RXFSStoreStatus, 1542 call = afs_alloc_flat_call(net, &afs_RXFSStoreStatus,
@@ -2034,7 +2034,7 @@ static int afs_deliver_fs_fetch_status(struct afs_call *call)
2034 if (ret < 0) 2034 if (ret < 0)
2035 return ret; 2035 return ret;
2036 2036
2037 _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); 2037 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode);
2038 2038
2039 /* unmarshall the reply once we've received all of it */ 2039 /* unmarshall the reply once we've received all of it */
2040 bp = call->buffer; 2040 bp = call->buffer;
@@ -2079,7 +2079,7 @@ int afs_fs_fetch_status(struct afs_fs_cursor *fc,
2079 struct afs_call *call; 2079 struct afs_call *call;
2080 __be32 *bp; 2080 __be32 *bp;
2081 2081
2082 _enter(",%x,{%x:%u},,", 2082 _enter(",%x,{%llx:%llu},,",
2083 key_serial(fc->key), fid->vid, fid->vnode); 2083 key_serial(fc->key), fid->vid, fid->vnode);
2084 2084
2085 call = afs_alloc_flat_call(net, &afs_RXFSFetchStatus, 16, (21 + 3 + 6) * 4); 2085 call = afs_alloc_flat_call(net, &afs_RXFSFetchStatus, 16, (21 + 3 + 6) * 4);
@@ -2250,7 +2250,7 @@ int afs_fs_inline_bulk_status(struct afs_fs_cursor *fc,
2250 __be32 *bp; 2250 __be32 *bp;
2251 int i; 2251 int i;
2252 2252
2253 _enter(",%x,{%x:%u},%u", 2253 _enter(",%x,{%llx:%llu},%u",
2254 key_serial(fc->key), fids[0].vid, fids[1].vnode, nr_fids); 2254 key_serial(fc->key), fids[0].vid, fids[1].vnode, nr_fids);
2255 2255
2256 call = afs_alloc_flat_call(net, &afs_RXFSInlineBulkStatus, 2256 call = afs_alloc_flat_call(net, &afs_RXFSInlineBulkStatus,
diff --git a/fs/afs/inode.c b/fs/afs/inode.c
index ab4e7a15c205..4ba47efe9668 100644
--- a/fs/afs/inode.c
+++ b/fs/afs/inode.c
@@ -100,7 +100,7 @@ int afs_fetch_status(struct afs_vnode *vnode, struct key *key, bool new_inode)
100 struct afs_fs_cursor fc; 100 struct afs_fs_cursor fc;
101 int ret; 101 int ret;
102 102
103 _enter("%s,{%x:%u.%u,S=%lx}", 103 _enter("%s,{%llx:%llu.%u,S=%lx}",
104 vnode->volume->name, 104 vnode->volume->name,
105 vnode->fid.vid, vnode->fid.vnode, vnode->fid.unique, 105 vnode->fid.vid, vnode->fid.vnode, vnode->fid.unique,
106 vnode->flags); 106 vnode->flags);
@@ -127,9 +127,9 @@ int afs_fetch_status(struct afs_vnode *vnode, struct key *key, bool new_inode)
127int afs_iget5_test(struct inode *inode, void *opaque) 127int afs_iget5_test(struct inode *inode, void *opaque)
128{ 128{
129 struct afs_iget_data *data = opaque; 129 struct afs_iget_data *data = opaque;
130 struct afs_vnode *vnode = AFS_FS_I(inode);
130 131
131 return inode->i_ino == data->fid.vnode && 132 return memcmp(&vnode->fid, &data->fid, sizeof(data->fid)) == 0;
132 inode->i_generation == data->fid.unique;
133} 133}
134 134
135/* 135/*
@@ -150,11 +150,14 @@ static int afs_iget5_set(struct inode *inode, void *opaque)
150 struct afs_iget_data *data = opaque; 150 struct afs_iget_data *data = opaque;
151 struct afs_vnode *vnode = AFS_FS_I(inode); 151 struct afs_vnode *vnode = AFS_FS_I(inode);
152 152
153 inode->i_ino = data->fid.vnode;
154 inode->i_generation = data->fid.unique;
155 vnode->fid = data->fid; 153 vnode->fid = data->fid;
156 vnode->volume = data->volume; 154 vnode->volume = data->volume;
157 155
156 /* YFS supports 96-bit vnode IDs, but Linux only supports
157 * 64-bit inode numbers.
158 */
159 inode->i_ino = data->fid.vnode;
160 inode->i_generation = data->fid.unique;
158 return 0; 161 return 0;
159} 162}
160 163
@@ -193,7 +196,7 @@ struct inode *afs_iget_pseudo_dir(struct super_block *sb, bool root)
193 return ERR_PTR(-ENOMEM); 196 return ERR_PTR(-ENOMEM);
194 } 197 }
195 198
196 _debug("GOT INODE %p { ino=%lu, vl=%x, vn=%x, u=%x }", 199 _debug("GOT INODE %p { ino=%lu, vl=%llx, vn=%llx, u=%x }",
197 inode, inode->i_ino, data.fid.vid, data.fid.vnode, 200 inode, inode->i_ino, data.fid.vid, data.fid.vnode,
198 data.fid.unique); 201 data.fid.unique);
199 202
@@ -252,8 +255,8 @@ static void afs_get_inode_cache(struct afs_vnode *vnode)
252 255
253 key.vnode_id = vnode->fid.vnode; 256 key.vnode_id = vnode->fid.vnode;
254 key.unique = vnode->fid.unique; 257 key.unique = vnode->fid.unique;
255 key.vnode_id_ext[0] = 0; 258 key.vnode_id_ext[0] = vnode->fid.vnode >> 32;
256 key.vnode_id_ext[1] = 0; 259 key.vnode_id_ext[1] = vnode->fid.vnode_hi;
257 aux.data_version = vnode->status.data_version; 260 aux.data_version = vnode->status.data_version;
258 261
259 vnode->cache = fscache_acquire_cookie(vnode->volume->cache, 262 vnode->cache = fscache_acquire_cookie(vnode->volume->cache,
@@ -277,7 +280,7 @@ struct inode *afs_iget(struct super_block *sb, struct key *key,
277 struct inode *inode; 280 struct inode *inode;
278 int ret; 281 int ret;
279 282
280 _enter(",{%x:%u.%u},,", fid->vid, fid->vnode, fid->unique); 283 _enter(",{%llx:%llu.%u},,", fid->vid, fid->vnode, fid->unique);
281 284
282 as = sb->s_fs_info; 285 as = sb->s_fs_info;
283 data.volume = as->volume; 286 data.volume = as->volume;
@@ -289,7 +292,7 @@ struct inode *afs_iget(struct super_block *sb, struct key *key,
289 return ERR_PTR(-ENOMEM); 292 return ERR_PTR(-ENOMEM);
290 } 293 }
291 294
292 _debug("GOT INODE %p { vl=%x vn=%x, u=%x }", 295 _debug("GOT INODE %p { vl=%llx vn=%llx, u=%x }",
293 inode, fid->vid, fid->vnode, fid->unique); 296 inode, fid->vid, fid->vnode, fid->unique);
294 297
295 vnode = AFS_FS_I(inode); 298 vnode = AFS_FS_I(inode);
@@ -352,7 +355,7 @@ bad_inode:
352 */ 355 */
353void afs_zap_data(struct afs_vnode *vnode) 356void afs_zap_data(struct afs_vnode *vnode)
354{ 357{
355 _enter("{%x:%u}", vnode->fid.vid, vnode->fid.vnode); 358 _enter("{%llx:%llu}", vnode->fid.vid, vnode->fid.vnode);
356 359
357#ifdef CONFIG_AFS_FSCACHE 360#ifdef CONFIG_AFS_FSCACHE
358 fscache_invalidate(vnode->cache); 361 fscache_invalidate(vnode->cache);
@@ -382,7 +385,7 @@ int afs_validate(struct afs_vnode *vnode, struct key *key)
382 bool valid = false; 385 bool valid = false;
383 int ret; 386 int ret;
384 387
385 _enter("{v={%x:%u} fl=%lx},%x", 388 _enter("{v={%llx:%llu} fl=%lx},%x",
386 vnode->fid.vid, vnode->fid.vnode, vnode->flags, 389 vnode->fid.vid, vnode->fid.vnode, vnode->flags,
387 key_serial(key)); 390 key_serial(key));
388 391
@@ -501,7 +504,7 @@ void afs_evict_inode(struct inode *inode)
501 504
502 vnode = AFS_FS_I(inode); 505 vnode = AFS_FS_I(inode);
503 506
504 _enter("{%x:%u.%d}", 507 _enter("{%llx:%llu.%d}",
505 vnode->fid.vid, 508 vnode->fid.vid,
506 vnode->fid.vnode, 509 vnode->fid.vnode,
507 vnode->fid.unique); 510 vnode->fid.unique);
@@ -550,7 +553,7 @@ int afs_setattr(struct dentry *dentry, struct iattr *attr)
550 struct key *key; 553 struct key *key;
551 int ret; 554 int ret;
552 555
553 _enter("{%x:%u},{n=%pd},%x", 556 _enter("{%llx:%llu},{n=%pd},%x",
554 vnode->fid.vid, vnode->fid.vnode, dentry, 557 vnode->fid.vid, vnode->fid.vnode, dentry,
555 attr->ia_valid); 558 attr->ia_valid);
556 559
diff --git a/fs/afs/proc.c b/fs/afs/proc.c
index fc36c41641ab..d887f822f4eb 100644
--- a/fs/afs/proc.c
+++ b/fs/afs/proc.c
@@ -221,7 +221,7 @@ static int afs_proc_cell_volumes_show(struct seq_file *m, void *v)
221 return 0; 221 return 0;
222 } 222 }
223 223
224 seq_printf(m, "%3d %08x %s\n", 224 seq_printf(m, "%3d %08llx %s\n",
225 atomic_read(&vol->usage), vol->vid, 225 atomic_read(&vol->usage), vol->vid,
226 afs_vol_types[vol->type]); 226 afs_vol_types[vol->type]);
227 227
diff --git a/fs/afs/rotate.c b/fs/afs/rotate.c
index d7cbc3c230ee..41405dde0113 100644
--- a/fs/afs/rotate.c
+++ b/fs/afs/rotate.c
@@ -118,7 +118,7 @@ static void afs_busy(struct afs_volume *volume, u32 abort_code)
118 default: m = "busy"; break; 118 default: m = "busy"; break;
119 } 119 }
120 120
121 pr_notice("kAFS: Volume %u '%s' is %s\n", volume->vid, volume->name, m); 121 pr_notice("kAFS: Volume %llu '%s' is %s\n", volume->vid, volume->name, m);
122} 122}
123 123
124/* 124/*
diff --git a/fs/afs/security.c b/fs/afs/security.c
index 81dfedb7879f..d1ae53fd3739 100644
--- a/fs/afs/security.c
+++ b/fs/afs/security.c
@@ -126,7 +126,7 @@ void afs_cache_permit(struct afs_vnode *vnode, struct key *key,
126 bool changed = false; 126 bool changed = false;
127 int i, j; 127 int i, j;
128 128
129 _enter("{%x:%u},%x,%x", 129 _enter("{%llx:%llu},%x,%x",
130 vnode->fid.vid, vnode->fid.vnode, key_serial(key), caller_access); 130 vnode->fid.vid, vnode->fid.vnode, key_serial(key), caller_access);
131 131
132 rcu_read_lock(); 132 rcu_read_lock();
@@ -289,7 +289,7 @@ int afs_check_permit(struct afs_vnode *vnode, struct key *key,
289 bool valid = false; 289 bool valid = false;
290 int i, ret; 290 int i, ret;
291 291
292 _enter("{%x:%u},%x", 292 _enter("{%llx:%llu},%x",
293 vnode->fid.vid, vnode->fid.vnode, key_serial(key)); 293 vnode->fid.vid, vnode->fid.vnode, key_serial(key));
294 294
295 /* check the permits to see if we've got one yet */ 295 /* check the permits to see if we've got one yet */
@@ -349,7 +349,7 @@ int afs_permission(struct inode *inode, int mask)
349 if (mask & MAY_NOT_BLOCK) 349 if (mask & MAY_NOT_BLOCK)
350 return -ECHILD; 350 return -ECHILD;
351 351
352 _enter("{{%x:%u},%lx},%x,", 352 _enter("{{%llx:%llu},%lx},%x,",
353 vnode->fid.vid, vnode->fid.vnode, vnode->flags, mask); 353 vnode->fid.vid, vnode->fid.vnode, vnode->flags, mask);
354 354
355 key = afs_request_key(vnode->volume->cell); 355 key = afs_request_key(vnode->volume->cell);
diff --git a/fs/afs/super.c b/fs/afs/super.c
index 4d3e274207fb..dcd07fe99871 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -406,10 +406,11 @@ static int afs_fill_super(struct super_block *sb,
406 inode = afs_iget_pseudo_dir(sb, true); 406 inode = afs_iget_pseudo_dir(sb, true);
407 sb->s_flags |= SB_RDONLY; 407 sb->s_flags |= SB_RDONLY;
408 } else { 408 } else {
409 sprintf(sb->s_id, "%u", as->volume->vid); 409 sprintf(sb->s_id, "%llu", as->volume->vid);
410 afs_activate_volume(as->volume); 410 afs_activate_volume(as->volume);
411 fid.vid = as->volume->vid; 411 fid.vid = as->volume->vid;
412 fid.vnode = 1; 412 fid.vnode = 1;
413 fid.vnode_hi = 0;
413 fid.unique = 1; 414 fid.unique = 1;
414 inode = afs_iget(sb, params->key, &fid, NULL, NULL, NULL); 415 inode = afs_iget(sb, params->key, &fid, NULL, NULL, NULL);
415 } 416 }
@@ -663,7 +664,7 @@ static void afs_destroy_inode(struct inode *inode)
663{ 664{
664 struct afs_vnode *vnode = AFS_FS_I(inode); 665 struct afs_vnode *vnode = AFS_FS_I(inode);
665 666
666 _enter("%p{%x:%u}", inode, vnode->fid.vid, vnode->fid.vnode); 667 _enter("%p{%llx:%llu}", inode, vnode->fid.vid, vnode->fid.vnode);
667 668
668 _debug("DESTROY INODE %p", inode); 669 _debug("DESTROY INODE %p", inode);
669 670
diff --git a/fs/afs/volume.c b/fs/afs/volume.c
index 1cd263fa6028..f0020e35bf6f 100644
--- a/fs/afs/volume.c
+++ b/fs/afs/volume.c
@@ -250,7 +250,7 @@ static int afs_update_volume_status(struct afs_volume *volume, struct key *key)
250 /* We look up an ID by passing it as a decimal string in the 250 /* We look up an ID by passing it as a decimal string in the
251 * operation's name parameter. 251 * operation's name parameter.
252 */ 252 */
253 idsz = sprintf(idbuf, "%u", volume->vid); 253 idsz = sprintf(idbuf, "%llu", volume->vid);
254 254
255 vldb = afs_vl_lookup_vldb(volume->cell, key, idbuf, idsz); 255 vldb = afs_vl_lookup_vldb(volume->cell, key, idbuf, idsz);
256 if (IS_ERR(vldb)) { 256 if (IS_ERR(vldb)) {
diff --git a/fs/afs/write.c b/fs/afs/write.c
index 11066a3248ba..72efcfcf9f95 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -92,7 +92,7 @@ int afs_write_begin(struct file *file, struct address_space *mapping,
92 pgoff_t index = pos >> PAGE_SHIFT; 92 pgoff_t index = pos >> PAGE_SHIFT;
93 int ret; 93 int ret;
94 94
95 _enter("{%x:%u},{%lx},%u,%u", 95 _enter("{%llx:%llu},{%lx},%u,%u",
96 vnode->fid.vid, vnode->fid.vnode, index, from, to); 96 vnode->fid.vid, vnode->fid.vnode, index, from, to);
97 97
98 /* We want to store information about how much of a page is altered in 98 /* We want to store information about how much of a page is altered in
@@ -192,7 +192,7 @@ int afs_write_end(struct file *file, struct address_space *mapping,
192 loff_t i_size, maybe_i_size; 192 loff_t i_size, maybe_i_size;
193 int ret; 193 int ret;
194 194
195 _enter("{%x:%u},{%lx}", 195 _enter("{%llx:%llu},{%lx}",
196 vnode->fid.vid, vnode->fid.vnode, page->index); 196 vnode->fid.vid, vnode->fid.vnode, page->index);
197 197
198 maybe_i_size = pos + copied; 198 maybe_i_size = pos + copied;
@@ -241,7 +241,7 @@ static void afs_kill_pages(struct address_space *mapping,
241 struct pagevec pv; 241 struct pagevec pv;
242 unsigned count, loop; 242 unsigned count, loop;
243 243
244 _enter("{%x:%u},%lx-%lx", 244 _enter("{%llx:%llu},%lx-%lx",
245 vnode->fid.vid, vnode->fid.vnode, first, last); 245 vnode->fid.vid, vnode->fid.vnode, first, last);
246 246
247 pagevec_init(&pv); 247 pagevec_init(&pv);
@@ -283,7 +283,7 @@ static void afs_redirty_pages(struct writeback_control *wbc,
283 struct pagevec pv; 283 struct pagevec pv;
284 unsigned count, loop; 284 unsigned count, loop;
285 285
286 _enter("{%x:%u},%lx-%lx", 286 _enter("{%llx:%llu},%lx-%lx",
287 vnode->fid.vid, vnode->fid.vnode, first, last); 287 vnode->fid.vid, vnode->fid.vnode, first, last);
288 288
289 pagevec_init(&pv); 289 pagevec_init(&pv);
@@ -325,7 +325,7 @@ static int afs_store_data(struct address_space *mapping,
325 struct list_head *p; 325 struct list_head *p;
326 int ret = -ENOKEY, ret2; 326 int ret = -ENOKEY, ret2;
327 327
328 _enter("%s{%x:%u.%u},%lx,%lx,%x,%x", 328 _enter("%s{%llx:%llu.%u},%lx,%lx,%x,%x",
329 vnode->volume->name, 329 vnode->volume->name,
330 vnode->fid.vid, 330 vnode->fid.vid,
331 vnode->fid.vnode, 331 vnode->fid.vnode,
@@ -687,7 +687,7 @@ void afs_pages_written_back(struct afs_vnode *vnode, struct afs_call *call)
687 unsigned count, loop; 687 unsigned count, loop;
688 pgoff_t first = call->first, last = call->last; 688 pgoff_t first = call->first, last = call->last;
689 689
690 _enter("{%x:%u},{%lx-%lx}", 690 _enter("{%llx:%llu},{%lx-%lx}",
691 vnode->fid.vid, vnode->fid.vnode, first, last); 691 vnode->fid.vid, vnode->fid.vnode, first, last);
692 692
693 pagevec_init(&pv); 693 pagevec_init(&pv);
@@ -726,7 +726,7 @@ ssize_t afs_file_write(struct kiocb *iocb, struct iov_iter *from)
726 ssize_t result; 726 ssize_t result;
727 size_t count = iov_iter_count(from); 727 size_t count = iov_iter_count(from);
728 728
729 _enter("{%x.%u},{%zu},", 729 _enter("{%llx:%llu},{%zu},",
730 vnode->fid.vid, vnode->fid.vnode, count); 730 vnode->fid.vid, vnode->fid.vnode, count);
731 731
732 if (IS_SWAPFILE(&vnode->vfs_inode)) { 732 if (IS_SWAPFILE(&vnode->vfs_inode)) {
@@ -754,7 +754,7 @@ int afs_fsync(struct file *file, loff_t start, loff_t end, int datasync)
754 struct inode *inode = file_inode(file); 754 struct inode *inode = file_inode(file);
755 struct afs_vnode *vnode = AFS_FS_I(inode); 755 struct afs_vnode *vnode = AFS_FS_I(inode);
756 756
757 _enter("{%x:%u},{n=%pD},%d", 757 _enter("{%llx:%llu},{n=%pD},%d",
758 vnode->fid.vid, vnode->fid.vnode, file, 758 vnode->fid.vid, vnode->fid.vnode, file,
759 datasync); 759 datasync);
760 760
@@ -772,7 +772,7 @@ vm_fault_t afs_page_mkwrite(struct vm_fault *vmf)
772 struct afs_vnode *vnode = AFS_FS_I(inode); 772 struct afs_vnode *vnode = AFS_FS_I(inode);
773 unsigned long priv; 773 unsigned long priv;
774 774
775 _enter("{{%x:%u}},{%lx}", 775 _enter("{{%llx:%llu}},{%lx}",
776 vnode->fid.vid, vnode->fid.vnode, vmf->page->index); 776 vnode->fid.vid, vnode->fid.vnode, vmf->page->index);
777 777
778 sb_start_pagefault(inode->i_sb); 778 sb_start_pagefault(inode->i_sb);
diff --git a/fs/afs/xattr.c b/fs/afs/xattr.c
index cfcc674e64a5..a2cdf25573e2 100644
--- a/fs/afs/xattr.c
+++ b/fs/afs/xattr.c
@@ -72,7 +72,7 @@ static int afs_xattr_get_fid(const struct xattr_handler *handler,
72 char text[8 + 1 + 8 + 1 + 8 + 1]; 72 char text[8 + 1 + 8 + 1 + 8 + 1];
73 size_t len; 73 size_t len;
74 74
75 len = sprintf(text, "%x:%x:%x", 75 len = sprintf(text, "%llx:%llx:%x",
76 vnode->fid.vid, vnode->fid.vnode, vnode->fid.unique); 76 vnode->fid.vid, vnode->fid.vnode, vnode->fid.unique);
77 if (size == 0) 77 if (size == 0)
78 return len; 78 return len;
diff --git a/include/trace/events/afs.h b/include/trace/events/afs.h
index 48b20a261d39..8acd56e20a37 100644
--- a/include/trace/events/afs.h
+++ b/include/trace/events/afs.h
@@ -374,7 +374,7 @@ TRACE_EVENT(afs_make_fs_call,
374 } 374 }
375 ), 375 ),
376 376
377 TP_printk("c=%08x %06x:%06x:%06x %s", 377 TP_printk("c=%08x %06llx:%06llx:%06x %s",
378 __entry->call, 378 __entry->call,
379 __entry->fid.vid, 379 __entry->fid.vid,
380 __entry->fid.vnode, 380 __entry->fid.vnode,
@@ -688,7 +688,7 @@ TRACE_EVENT(afs_file_error,
688 __entry->where = where; 688 __entry->where = where;
689 ), 689 ),
690 690
691 TP_printk("%x:%x:%x r=%d %s", 691 TP_printk("%llx:%llx:%x r=%d %s",
692 __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique, 692 __entry->fid.vid, __entry->fid.vnode, __entry->fid.unique,
693 __entry->error, 693 __entry->error,
694 __print_symbolic(__entry->where, afs_file_errors)) 694 __print_symbolic(__entry->where, afs_file_errors))