Skip to content

DAOS-18870 DFS: Reserve a new DFS OID for GIT.#18084

Open
sherintg wants to merge 6 commits intofeature/dfs_hardlinksfrom
sherintg/dfs_hardlinks/DAOS-18870
Open

DAOS-18870 DFS: Reserve a new DFS OID for GIT.#18084
sherintg wants to merge 6 commits intofeature/dfs_hardlinksfrom
sherintg/dfs_hardlinks/DAOS-18870

Conversation

@sherintg
Copy link
Copy Markdown
Collaborator

Reserve a new DFS OID for the Global Index Table (GIT) used by hardlink support. Additionally bump the DFS_SB_VERSION so that older clients do not operate on containers with GIT enabled.

This change:

  • bumps DFS_SB_VERSION from 2 to 3
  • adds GIT_HI and DFS_SB_VERSION_HLS constants
  • reserves roots.cr_oids[2] for the GIT object at container create time
  • extends open_sb() to return sb_ver to mount callers
  • gates loading of the new roots slot on sb_ver >= DFS_SB_VERSION_HLS
  • stores and restores git_oid in DFS global/local handle conversion
  • opens and closes the GIT object handle during mount and unmount
  • avoids runtime OID hi collisions with the reserved GIT hi value

This is plumbing only for the reserved object identity and version gating.

Manual Testing:

  1. Create two containers one say cont1 with client library without fix and cont2 with client library with the fix.
  2. dfuse mount cont1 using the old and the new dfuse. The mount should succeed.
  3. dfuse mount cont2 using the old and the new dfuse. With the new dfuse it succeeds and with the old dfuse it fails and the below message is printed in the log:
    2026/04/22 03:36:00.271383 delphi-018 DAOS[634484/634484/0] dfs ERR src/client/dfs/common.c:906 open_sb() Incompatible SB version: 22 (Invalid argument)
    2026/04/22 03:36:00.271418 delphi-018 DAOS[634484/634484/0] dfuse ERR src/client/dfuse/dfuse_core.c:900 dfuse_cont_open(0x5641f23cb290) dfs mount() failed: 22 (Invalid argument)

Steps for the author:

  • Commit message follows the guidelines.
  • Appropriate Features or Test-tag pragmas were used.
  • Appropriate Functional Test Stages were run.
  • At least two positive code reviews including at least one code owner from each category referenced in the PR.
  • Testing is complete. If necessary, forced-landing label added and a reason added in a comment.

After all prior steps are complete:

  • Gatekeeper requested (daos-gatekeeper added as a reviewer).

Reserve a new DFS OID for the Global Index Table (GIT) used by hardlink
support. Additionally bump the DFS_SB_VERSION so that older clients do
not operate on containers with GIT enabled.

This change:
- bumps DFS_SB_VERSION from 2 to 3
- adds GIT_HI and DFS_SB_VERSION_HLS constants
- reserves roots.cr_oids[2] for the GIT object at container create time
- extends open_sb() to return sb_ver to mount callers
- gates loading of the new roots slot on sb_ver >= DFS_SB_VERSION_HLS
- stores and restores git_oid in DFS global/local handle conversion
- opens and closes the GIT object handle during mount and unmount
- avoids runtime OID hi collisions with the reserved GIT hi value

This is plumbing only for the reserved object identity and version gating.

Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
@sherintg sherintg marked this pull request as ready for review April 22, 2026 08:57
@sherintg sherintg requested review from a team as code owners April 22, 2026 08:57
@sherintg sherintg requested a review from mchaarawi April 22, 2026 08:57
@github-actions
Copy link
Copy Markdown

Ticket title is 'Reserve a new DFS OID for the Global Index Table (GIT) used by hardlink support and bump SB_VERSION'
Status is 'Open'
Errors are Component should be lower-case
https://daosio.atlassian.net/browse/DAOS-18870

Copy link
Copy Markdown
Contributor

@mchaarawi mchaarawi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me, just a couple of nits

Comment thread src/client/dfs/common.c Outdated
Comment thread src/client/dfs/dfs_internal.h Outdated
Comment thread src/client/dfs/cont.c Outdated
Comment thread src/client/dfs/dfs_internal.h Outdated
@daosbuild3
Copy link
Copy Markdown
Collaborator

Addressed review comments.

Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
Addressed additional review comments.

Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
@daosbuild3
Copy link
Copy Markdown
Collaborator

@daosbuild3
Copy link
Copy Markdown
Collaborator

Copy link
Copy Markdown
Contributor

@knard38 knard38 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If I am correct the OID collision issue should be fixed before landing.

Comment thread src/client/dfs/dfs_internal.h
Comment thread src/client/dfs/mnt.c Outdated
Addressed additional review comments.

Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
@sherintg sherintg requested a review from knard38 May 4, 2026 10:06
Copy link
Copy Markdown
Contributor

@knard38 knard38 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@daosbuild3
Copy link
Copy Markdown
Collaborator

@sherintg sherintg requested a review from a team May 5, 2026 04:36
@sherintg
Copy link
Copy Markdown
Collaborator Author

sherintg commented May 5, 2026

@daos-stack/daos-gatekeeper The clang format failure does not appear to be correct and also the functional test for EL 9 appears to be due to missing rpm. Can you please approve and merge the pull request.

@daltonbohning
Copy link
Copy Markdown
Contributor

Removing gatekeeper for now since CI is still running

@daltonbohning daltonbohning removed the request for review from a team May 5, 2026 14:00
Added Allow-unstable-test flag.

Allow-unstable-test: true
Signed-off-by: Sherin T George <sherin-t.george@hpe.com>
@sherintg sherintg force-pushed the sherintg/dfs_hardlinks/DAOS-18870 branch from c6071fd to 194f5de Compare May 6, 2026 03:48
@daosbuild3
Copy link
Copy Markdown
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants