Whamcloud - gitweb
LU-17848 dt: allow declare functions to be optional 32/55632/2
authorTimothy Day <timday@amazon.com>
Thu, 4 Jul 2024 17:59:19 +0000 (17:59 +0000)
committerOleg Drokin <green@whamcloud.com>
Sat, 13 Jul 2024 20:56:23 +0000 (20:56 +0000)
If an OSD (or other dt implementer) doesn't have anything to
declare, don't force it to implement a declare function for
an operation.

Clean up some examples of useless declare functions in osp
and lfsck.

Test-Parameters: trivial
Test-Parameters: trivial fstype=zfs
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I0d7e9f491ff2a8f6e4f3bf315a10437cd42c2351
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55632
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/include/dt_object.h
lustre/lfsck/lfsck_layout.c
lustre/osp/osp_object.c

index b100b0a..1e49979 100644 (file)
@@ -2257,8 +2257,11 @@ static inline int dt_declare_record_write(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_body_ops);
-       LASSERT(dt->do_body_ops->dbo_declare_write);
        LASSERT(th);
+
+       if (!dt->do_body_ops->dbo_declare_write)
+               return 0;
+
        return dt->do_body_ops->dbo_declare_write(env, dt, buf, pos, th);
 }
 
@@ -2271,11 +2274,13 @@ static inline int dt_declare_create(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_create);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_CREATE))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_create)
+               return 0;
+
        return dt->do_ops->do_declare_create(env, dt, attr, hint, dof, th);
 }
 
@@ -2302,11 +2307,13 @@ static inline int dt_declare_destroy(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_destroy);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_DESTROY))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_destroy)
+               return 0;
+
        return dt->do_ops->do_declare_destroy(env, dt, th);
 }
 
@@ -2415,11 +2422,13 @@ static inline int dt_declare_attr_set(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_attr_set);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_ATTR_SET))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_attr_set)
+               return 0;
+
        return dt->do_ops->do_declare_attr_set(env, dt, la, th);
 }
 
@@ -2441,11 +2450,13 @@ static inline int dt_declare_ref_add(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_ref_add);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_REF_ADD))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_ref_add)
+               return 0;
+
        return dt->do_ops->do_declare_ref_add(env, dt, th);
 }
 
@@ -2467,11 +2478,13 @@ static inline int dt_declare_ref_del(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_ref_del);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_REF_DEL))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_ref_del)
+               return 0;
+
        return dt->do_ops->do_declare_ref_del(env, dt, th);
 }
 
@@ -2525,8 +2538,11 @@ static inline int dt_declare_write_commit(const struct lu_env *env,
 {
        LASSERT(d);
        LASSERT(d->do_body_ops);
-       LASSERT(d->do_body_ops->dbo_declare_write_commit);
        LASSERT(th);
+
+       if (!d->do_body_ops->dbo_declare_write_commit)
+               return 0;
+
        return d->do_body_ops->dbo_declare_write_commit(env, d, lnb, n, th);
 }
 
@@ -2557,7 +2573,10 @@ static inline int dt_declare_write(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_body_ops);
-       LASSERT(dt->do_body_ops->dbo_declare_write);
+
+       if (!dt->do_body_ops->dbo_declare_write)
+               return 0;
+
        return dt->do_body_ops->dbo_declare_write(env, dt, buf, pos, th);
 }
 
@@ -2577,7 +2596,10 @@ static inline int dt_declare_punch(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_body_ops);
-       LASSERT(dt->do_body_ops->dbo_declare_punch);
+
+       if (!dt->do_body_ops->dbo_declare_punch)
+               return 0;
+
        return dt->do_body_ops->dbo_declare_punch(env, dt, start, end, th);
 }
 
@@ -2725,11 +2747,13 @@ static inline int dt_declare_insert(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_index_ops);
-       LASSERT(dt->do_index_ops->dio_declare_insert);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_INSERT))
                return cfs_fail_err;
 
+       if (!dt->do_index_ops->dio_declare_insert)
+               return 0;
+
        return dt->do_index_ops->dio_declare_insert(env, dt, rec, key, th);
 }
 
@@ -2756,11 +2780,13 @@ static inline int dt_declare_xattr_del(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_xattr_del);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_XATTR_DEL))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_xattr_del)
+               return 0;
+
        return dt->do_ops->do_declare_xattr_del(env, dt, name, th);
 }
 
@@ -2786,11 +2812,13 @@ static inline int dt_declare_xattr_set(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_ops);
-       LASSERT(dt->do_ops->do_declare_xattr_set);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_XATTR_SET))
                return cfs_fail_err;
 
+       if (!dt->do_ops->do_declare_xattr_set)
+               return 0;
+
        return dt->do_ops->do_declare_xattr_set(env, dt, buf, name, fl, th);
 }
 
@@ -2868,11 +2896,13 @@ static inline int dt_declare_delete(const struct lu_env *env,
 {
        LASSERT(dt);
        LASSERT(dt->do_index_ops);
-       LASSERT(dt->do_index_ops->dio_declare_delete);
 
        if (CFS_FAULT_CHECK(OBD_FAIL_DT_DECLARE_DELETE))
                return cfs_fail_err;
 
+       if (!dt->do_index_ops->dio_declare_delete)
+               return 0;
+
        return dt->do_index_ops->dio_declare_delete(env, dt, key, th);
 }
 
index af7409f..7bc6282 100644 (file)
@@ -7300,15 +7300,6 @@ static int lfsck_orphan_index_lookup(const struct lu_env *env,
        return -EOPNOTSUPP;
 }
 
-static int lfsck_orphan_index_declare_insert(const struct lu_env *env,
-                                            struct dt_object *dt,
-                                            const struct dt_rec *rec,
-                                            const struct dt_key *key,
-                                            struct thandle *handle)
-{
-       return -EOPNOTSUPP;
-}
-
 static int lfsck_orphan_index_insert(const struct lu_env *env,
                                     struct dt_object *dt,
                                     const struct dt_rec *rec,
@@ -7318,14 +7309,6 @@ static int lfsck_orphan_index_insert(const struct lu_env *env,
        return -EOPNOTSUPP;
 }
 
-static int lfsck_orphan_index_declare_delete(const struct lu_env *env,
-                                            struct dt_object *dt,
-                                            const struct dt_key *key,
-                                            struct thandle *handle)
-{
-       return -EOPNOTSUPP;
-}
-
 static int lfsck_orphan_index_delete(const struct lu_env *env,
                                     struct dt_object *dt,
                                     const struct dt_key *key,
@@ -7772,9 +7755,7 @@ static int lfsck_orphan_it_load(const struct lu_env *env,
 
 static const struct dt_index_operations lfsck_orphan_index_ops = {
        .dio_lookup             = lfsck_orphan_index_lookup,
-       .dio_declare_insert     = lfsck_orphan_index_declare_insert,
        .dio_insert             = lfsck_orphan_index_insert,
-       .dio_declare_delete     = lfsck_orphan_index_declare_delete,
        .dio_delete             = lfsck_orphan_index_delete,
        .dio_it = {
                .init           = lfsck_orphan_it_init,
index 74da125..716dfb0 100644 (file)
@@ -1743,15 +1743,6 @@ static int osp_orphan_index_lookup(const struct lu_env *env,
        return -EOPNOTSUPP;
 }
 
-static int osp_orphan_index_declare_insert(const struct lu_env *env,
-                                          struct dt_object *dt,
-                                          const struct dt_rec *rec,
-                                          const struct dt_key *key,
-                                          struct thandle *handle)
-{
-       return -EOPNOTSUPP;
-}
-
 static int osp_orphan_index_insert(const struct lu_env *env,
                                   struct dt_object *dt,
                                   const struct dt_rec *rec,
@@ -1761,14 +1752,6 @@ static int osp_orphan_index_insert(const struct lu_env *env,
        return -EOPNOTSUPP;
 }
 
-static int osp_orphan_index_declare_delete(const struct lu_env *env,
-                                          struct dt_object *dt,
-                                          const struct dt_key *key,
-                                          struct thandle *handle)
-{
-       return -EOPNOTSUPP;
-}
-
 static int osp_orphan_index_delete(const struct lu_env *env,
                                   struct dt_object *dt,
                                   const struct dt_key *key,
@@ -2215,9 +2198,7 @@ static int osp_orphan_it_load(const struct lu_env *env, const struct dt_it *di,
 
 static const struct dt_index_operations osp_orphan_index_ops = {
        .dio_lookup             = osp_orphan_index_lookup,
-       .dio_declare_insert     = osp_orphan_index_declare_insert,
        .dio_insert             = osp_orphan_index_insert,
-       .dio_declare_delete     = osp_orphan_index_declare_delete,
        .dio_delete             = osp_orphan_index_delete,
        .dio_it = {
                .init           = osp_it_init,