Whamcloud - gitweb
LU-10698 obdclass: allow specifying complex jobids
[fs/lustre-release.git] / lustre / llite / llite_lib.c
index ed9f4ad..ccd8863 100644 (file)
@@ -130,6 +130,7 @@ static struct ll_sb_info *ll_init_sbi(void)
        atomic_set(&sbi->ll_agl_total, 0);
        sbi->ll_flags |= LL_SBI_AGL_ENABLED;
        sbi->ll_flags |= LL_SBI_FAST_READ;
+       sbi->ll_flags |= LL_SBI_TINY_WRITE;
 
        /* root squash */
        sbi->ll_squash.rsi_uid = 0;
@@ -223,7 +224,7 @@ static int client_common_fill_super(struct super_block *sb, char *md, char *dt,
                                  OBD_CONNECT_GRANT_PARAM |
                                  OBD_CONNECT_SHORTIO | OBD_CONNECT_FLAGS2;
 
-       data->ocd_connect_flags2 = 0;
+       data->ocd_connect_flags2 = OBD_CONNECT2_FLR;
 
 #ifdef HAVE_LRU_RESIZE_SUPPORT
         if (sbi->ll_flags & LL_SBI_LRU_RESIZE)
@@ -954,7 +955,7 @@ void ll_lli_init(struct ll_inode_info *lli)
                lli->lli_async_rc = 0;
        }
        mutex_init(&lli->lli_layout_mutex);
-       memset(lli->lli_jobid, 0, LUSTRE_JOBID_SIZE);
+       memset(lli->lli_jobid, 0, sizeof(lli->lli_jobid));
 }
 
 #ifndef HAVE_SUPER_SETUP_BDI_NAME
@@ -997,7 +998,7 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
 {
        struct  lustre_profile *lprof = NULL;
        struct  lustre_sb_info *lsi = s2lsi(sb);
-       struct  ll_sb_info *sbi;
+       struct  ll_sb_info *sbi = NULL;
        char    *dt = NULL, *md = NULL;
        char    *profilenm = get_profile_name(sb);
        struct config_llog_instance *cfg;
@@ -1010,19 +1011,16 @@ int ll_fill_super(struct super_block *sb, struct vfsmount *mnt)
 
        CDEBUG(D_VFSTRACE, "VFS Op: sb %p\n", sb);
 
+       try_module_get(THIS_MODULE);
+
        OBD_ALLOC_PTR(cfg);
        if (cfg == NULL)
-               RETURN(-ENOMEM);
-
-       try_module_get(THIS_MODULE);
+               GOTO(out_free, err = -ENOMEM);
 
        /* client additional sb info */
        lsi->lsi_llsbi = sbi = ll_init_sbi();
-       if (!sbi) {
-               module_put(THIS_MODULE);
-               OBD_FREE_PTR(cfg);
-               RETURN(-ENOMEM);
-       }
+       if (!sbi)
+               GOTO(out_free, err = -ENOMEM);
 
        err = ll_options(lsi->lsi_lmd->lmd_opts, &sbi->ll_flags);
        if (err)
@@ -1100,12 +1098,12 @@ out_free:
                OBD_FREE(dt, dt_len);
        if (lprof != NULL)
                class_put_profile(lprof);
+       if (cfg)
+               OBD_FREE_PTR(cfg);
        if (err)
                ll_put_super(sb);
        else if (sbi->ll_flags & LL_SBI_VERBOSE)
                LCONSOLE_WARN("Mounted %s\n", profilenm);
-
-       OBD_FREE_PTR(cfg);
        RETURN(err);
 } /* ll_fill_super */
 
@@ -1120,6 +1118,9 @@ void ll_put_super(struct super_block *sb)
        int next, force = 1, rc = 0;
         ENTRY;
 
+       if (!sbi)
+               GOTO(out_no_sbi, 0);
+
         CDEBUG(D_VFSTRACE, "VFS Op: sb %p - %s\n", sb, profilenm);
 
         cfg.cfg_instance = sb;
@@ -1182,7 +1183,7 @@ void ll_put_super(struct super_block *sb)
 
         ll_free_sbi(sb);
         lsi->lsi_llsbi = NULL;
-
+out_no_sbi:
        lustre_common_put_super(sb);
 
        cl_env_cache_purge(~0);
@@ -1773,12 +1774,15 @@ int ll_setattr(struct dentry *de, struct iattr *attr)
 }
 
 int ll_statfs_internal(struct super_block *sb, struct obd_statfs *osfs,
-                      time64_t max_age, __u32 flags)
+                      u32 flags)
 {
-        struct ll_sb_info *sbi = ll_s2sbi(sb);
-        struct obd_statfs obd_osfs;
-        int rc;
-        ENTRY;
+       struct ll_sb_info *sbi = ll_s2sbi(sb);
+       struct obd_statfs obd_osfs;
+       time64_t max_age;
+       int rc;
+
+       ENTRY;
+       max_age = ktime_get_seconds() - OBD_STATFS_CACHE_SECONDS;
 
         rc = obd_statfs(NULL, sbi->ll_md_exp, osfs, max_age, flags);
         if (rc) {
@@ -1831,12 +1835,10 @@ int ll_statfs(struct dentry *de, struct kstatfs *sfs)
        CDEBUG(D_VFSTRACE, "VFS Op: at %llu jiffies\n", get_jiffies_64());
         ll_stats_ops_tally(ll_s2sbi(sb), LPROC_LL_STAFS, 1);
 
-        /* Some amount of caching on the client is allowed */
-        rc = ll_statfs_internal(sb, &osfs,
-                               ktime_get_seconds() - OBD_STATFS_CACHE_SECONDS,
-                                0);
-        if (rc)
-                return rc;
+       /* Some amount of caching on the client is allowed */
+       rc = ll_statfs_internal(sb, &osfs, 0);
+       if (rc)
+               return rc;
 
         statfs_unpack(sfs, &osfs);