Whamcloud - gitweb
LU-16758 krb: use Kerberos machine principal in client
[fs/lustre-release.git] / lustre / ofd / ofd_fs.c
index 0235cd1..04af82b 100644 (file)
@@ -27,7 +27,6 @@
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  *
  * lustre/ofd/ofd_fs.c
  *
@@ -378,8 +377,11 @@ struct ofd_seq *ofd_seq_load(const struct lu_env *env, struct ofd_device *ofd,
 
        /* if seq is already initialized */
        oseq = ofd_seq_get(ofd, seq);
-       if (oseq != NULL)
+       if (oseq != NULL) {
+               CDEBUG(D_TRACE, "%s: got sequence %#llx "DOSTID"\n",
+                      ofd_name(ofd), seq, POSTID(&oseq->os_oi));
                RETURN(oseq);
+       }
 
        OBD_ALLOC_PTR(oseq);
        if (oseq == NULL)
@@ -417,10 +419,18 @@ struct ofd_seq *ofd_seq_load(const struct lu_env *env, struct ofd_device *ofd,
 
        if (info->fti_attr.la_size == 0) {
                /* object is just created, initialize last id */
-               if (OBD_FAIL_CHECK(OBD_FAIL_OFD_SET_OID))
-                       ofd_seq_last_oid_set(oseq, 0xffffff00);
-               else
+               if (OBD_FAIL_CHECK(OBD_FAIL_OFD_SET_OID)) {
+                       struct seq_server_site *ss = &ofd->ofd_seq_site;
+                       struct lu_client_seq *client_seq = ss->ss_client_seq;
+                       __u64 seq_width = fid_seq_is_norm(seq) ?
+                               min(OBIF_MAX_OID, client_seq->lcs_width) :
+                               min(IDIF_MAX_OID, client_seq->lcs_width);
+
+                       ofd_seq_last_oid_set(oseq, seq_width > 255 ?
+                                               seq_width - 255 : seq_width);
+               } else {
                        ofd_seq_last_oid_set(oseq, OFD_INIT_OBJID);
+               }
                ofd_seq_last_oid_write(env, ofd, oseq);
        } else if (info->fti_attr.la_size == sizeof(lastid)) {
                info->fti_off = 0;
@@ -440,6 +450,8 @@ struct ofd_seq *ofd_seq_load(const struct lu_env *env, struct ofd_device *ofd,
                GOTO(cleanup, rc = -EINVAL);
        }
 
+       CDEBUG(D_HA, "%s: adding sequence %#llx\n", ofd_name(ofd), seq);
+
        oseq = ofd_seq_add(env, ofd, oseq);
        RETURN((oseq != NULL) ? oseq : ERR_PTR(-ENOENT));
 cleanup: