summaryrefslogtreecommitdiff
path: root/fs/afs/internal.h
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2023-11-09 15:06:49 +0300
committerDavid Howells <dhowells@redhat.com>2024-01-01 19:37:27 +0300
commit28f4c58045ede40c44d331b9a6c9a6a41eb8e9a9 (patch)
tree552fb196879012d0f376efbfa86280906059857f /fs/afs/internal.h
parent495f2ae9e3552c30f7b83be3d142a932885d506e (diff)
downloadlinux-28f4c58045ede40c44d331b9a6c9a6a41eb8e9a9.tar.xz
afs: Fix offline and busy message emission
The current code assumes that offline and busy volume states apply to all instances of a volume, not just the one on the server that returned VOFFLINE or VBUSY and will emit a notice to dmesg suggesting that the entire volume is unavailable. Fix that by moving the flags recording this to the afs_server_entry struct that is used to represent a particular instance of a volume on a specific server. The notice is altered to include the server UUID also. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org
Diffstat (limited to 'fs/afs/internal.h')
-rw-r--r--fs/afs/internal.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/fs/afs/internal.h b/fs/afs/internal.h
index e3e373c1fecf..a6a4fc417dba 100644
--- a/fs/afs/internal.h
+++ b/fs/afs/internal.h
@@ -612,6 +612,8 @@ struct afs_server_entry {
time64_t cb_expires_at; /* Time at which volume-level callback expires */
unsigned long flags;
#define AFS_SE_EXCLUDED 0 /* Set if server is to be excluded in rotation */
+#define AFS_SE_VOLUME_OFFLINE 1 /* Set if volume offline notice given */
+#define AFS_SE_VOLUME_BUSY 2 /* Set if volume busy notice given */
};
struct afs_server_list {
@@ -645,10 +647,8 @@ struct afs_volume {
#define AFS_VOLUME_UPDATING 1 /* - T if an update is in progress */
#define AFS_VOLUME_WAIT 2 /* - T if users must wait for update */
#define AFS_VOLUME_DELETED 3 /* - T if volume appears deleted */
-#define AFS_VOLUME_OFFLINE 4 /* - T if volume offline notice given */
-#define AFS_VOLUME_BUSY 5 /* - T if volume busy notice given */
-#define AFS_VOLUME_MAYBE_NO_IBULK 6 /* - T if some servers don't have InlineBulkStatus */
-#define AFS_VOLUME_RM_TREE 7 /* - Set if volume removed from cell->volumes */
+#define AFS_VOLUME_MAYBE_NO_IBULK 4 /* - T if some servers don't have InlineBulkStatus */
+#define AFS_VOLUME_RM_TREE 5 /* - Set if volume removed from cell->volumes */
#ifdef CONFIG_AFS_FSCACHE
struct fscache_volume *cache; /* Caching cookie */
#endif