[LU-7863] ZFS dmu_prefetch API change. Created: 12/Feb/16  Updated: 14/Jun/18  Resolved: 06/Aug/16

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.9.0

Type: Task Priority: Major
Reporter: John Malmberg (Inactive) Assignee: Nathaniel Clark
Resolution: Fixed Votes: 0
Labels: zfs
Environment:

Centos 7.2, ZFS 0.6.5-158, lustre-2.58.50-3.10.0_327


Issue Links:
Duplicate
is duplicated by LU-8423 error: too few arguments to function ... Closed
Related
Rank (Obsolete): 9223372036854775807

 Description   

The API for the ZFS dmu_prefetch routine has changed. The new routine has both more parameters and the parameters in a different order.

Current work around is to append a hack to the ZFS include/sys/dmu.h used for building lustre.

      cat <<DELIM >> include/sys/dmu.h
#ifndef dmu_prefetch
#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-function"
static inline void dmu_prefetch_old(objset_t *os, uint64_t object,
    uint64_t offset, uint64_t len) {
  dmu_prefetch(os, object, 0, offset, len, 0); }
#define dmu_prefetch dmu_prefetch_old
#pragma GCC diagnostic pop
#define dmu_prefetch dmu_prefetch_old
#endif
DELIM



 Comments   
Comment by John Salinas (Inactive) [ 11/Mar/16 ]

This bug is blocking our ability to test zfs 0.6.5 with Lustre 2.8. We need zfs 0.6.5 as it has large blocks (over 1MB) which are needed for CORAL testing.

Comment by Peter Jones [ 11/Mar/16 ]

Nathaniel

Are you able to give some pointers here? AFAIK it is possible to run 0.6.5 with 2.8 but that is just not the default because of LU-7404

Peter

Comment by Nathaniel Clark [ 14/Mar/16 ]

According to Jinshan's comments on LU-7404 it's not the ZFS version, so I've opened LU-7870 to update to 0.6.5.5. I'll handle any API changes when I do that update, should have a patch in the next day.

Comment by Nathaniel Clark [ 15/Mar/16 ]

Lustre master builds cleanly with 0.6.5.5, are you building against ZFS/SPL master and not the 0.6.5-release branch?

Comment by John Malmberg (Inactive) [ 15/Mar/16 ]

Yes, we are building against ZFS/SPL master, not the release branch.

John Salinas just discussed this issue with Don Brady and we will be changing the builds to the 0.6.5.5 branch.

Comment by Nathaniel Clark [ 15/Mar/16 ]

I'll work up a separate patch to deal with the change to dmu_prefetch() in zfs master.

Comment by Gerrit Updater [ 01/Apr/16 ]

Nathaniel Clark (nathaniel.l.clark@intel.com) uploaded a new patch: http://review.whamcloud.com/19293
Subject: LU-7863 osd-zfs: dmu_prefetch change in ZFS master
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: e17477bb4cf89d6551975556c0823695a199388d

Comment by Gerrit Updater [ 06/Aug/16 ]

Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/19293/
Subject: LU-7863 osd-zfs: dmu_prefetch change in ZFS master
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 349c2be0e608c9afe85253192a4c1450306e9629

Comment by Peter Jones [ 06/Aug/16 ]

Landed for 2.9

Generated at Sat Feb 10 02:12:35 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.