Commit
b9b2dd36 modified ->get_dqblk to use struct fs_disk_quota.
(v2.6.34)
Signed-off-by: James Simmons <uja.ornl@gmail.com>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Change-Id: Ifb8a79db37e3f88046c00eb906b8e7264005481b
Reviewed-on: http://review.whamcloud.com/5118
Tested-by: Hudson
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Johann Lombardi <johann.lombardi@intel.com>
])
])
+# 2.6.34 has quotactl_ops->[sg]et_dqblk that take struct fs_disk_quota
+AC_DEFUN([LC_HAVE_DQUOT_FS_DISK_QUOTA],
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+[AC_MSG_CHECKING([if quotactl_ops.set_dqblk takes struct fs_disk_quota])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+ #include <linux/quota.h>
+],[
+ struct quotactl_ops qops = {};
+ struct fs_disk_quota fdq;
+ qops.set_dqblk(NULL, 0, 0, &fdq);
+],[
+ AC_DEFINE(HAVE_DQUOT_FS_DISK_QUOTA, 1, [quotactl_ops.set_dqblk takes struct fs_disk_quota])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+])
+
# LC_LOCK_MAP_ACQUIRE
# after 2.6.27 lock_map_acquire replaces lock_acquire
AC_DEFUN([LC_LOCK_MAP_ACQUIRE],
LC_EXPORT_ACCESS_PROCESS_VM
LC_VFS_INODE_NEWSIZE_OK
+ # 2.6.34
+ LC_HAVE_DQUOT_FS_DISK_QUOTA
+
# 2.6.35, 3.0.0
LC_FILE_FSYNC
LC_EXPORT_SIMPLE_SETATTR
/* used by quota code */
union {
+#ifdef HAVE_DQUOT_FS_DISK_QUOTA
+ struct fs_disk_quota oti_fdq;
+#else
struct if_dqblk oti_dqblk;
+#endif
struct if_dqinfo oti_dqinfo;
};
struct lquota_id_info oti_qi;
struct lustre_capa *capa)
{
struct osd_thread_info *info = osd_oti_get(env);
+#ifdef HAVE_DQUOT_FS_DISK_QUOTA
+ struct fs_disk_quota *dqblk = &info->oti_fdq;
+#else
struct if_dqblk *dqblk = &info->oti_dqblk;
+#endif
struct super_block *sb = osd_sb(osd_obj2dev(osd_dt_obj(dtobj)));
struct lquota_acct_rec *rec = (struct lquota_acct_rec *)dtrec;
__u64 id = *((__u64 *)dtkey);
rc = sb->s_qcop->get_dqblk(sb, obj2type(dtobj), (qid_t) id, dqblk);
if (rc)
RETURN(rc);
+#ifdef HAVE_DQUOT_FS_DISK_QUOTA
+ rec->bspace = dqblk->d_bcount;
+ rec->ispace = dqblk->d_icount;
+#else
rec->bspace = dqblk->dqb_curspace;
rec->ispace = dqblk->dqb_curinodes;
+#endif
RETURN(+1);
}