X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flov%2Flproc_lov.c;h=1c5839c377318fed41e127da500243236c5da6d7;hb=187a94923310521cc0dd37e52a461a1fd3c3b27a;hp=d95b1f0d93f4385c0e75b4474fd10686d23acee1;hpb=a1c67eafa3eebd224a70cff5e9f26b71d8c695bb;p=fs%2Flustre-release.git diff --git a/lustre/lov/lproc_lov.c b/lustre/lov/lproc_lov.c index d95b1f0..1c5839c 100644 --- a/lustre/lov/lproc_lov.c +++ b/lustre/lov/lproc_lov.c @@ -1,26 +1,37 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: +/* + * GPL HEADER START * - * Copyright (C) 2002 Cluster File Systems, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * - * This file is part of the Lustre file system, http://www.lustre.org - * Lustre is a trademark of Cluster File Systems, Inc. + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. * - * You may have signed or agreed to another license before downloading - * this software. If so, you are bound by the terms and conditions - * of that agreement, and the following does not apply to you. See the - * LICENSE file included with this distribution for more information. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). * - * If you did not agree to a different license, then this copy of Lustre - * is open source software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf * - * In either case, Lustre is distributed in the hope that it will be - * useful, but WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * license text for more details. + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. * + * GPL HEADER END + */ +/* + * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + * + * Copyright (c) 2012, Intel Corporation. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. */ #define DEBUG_SUBSYSTEM S_CLASS @@ -132,8 +143,8 @@ static int lov_rd_stripecount(char *page, char **start, off_t off, int count, LASSERT(dev != NULL); desc = &dev->u.lov.desc; *eof = 1; - return snprintf(page, count, "%ld\n", - (long)(desc->ld_default_stripe_count + 1) - 1); + return snprintf(page, count, "%d\n", + (__s16)(desc->ld_default_stripe_count + 1) - 1); } static int lov_wr_stripecount(struct file *file, const char *buffer, @@ -191,72 +202,6 @@ static int lov_rd_desc_uuid(char *page, char **start, off_t off, int count, return snprintf(page, count, "%s\n", lov->desc.ld_uuid.uuid); } -/* free priority (0-255): how badly user wants to choose empty osts */ -static int lov_rd_qos_priofree(char *page, char **start, off_t off, int count, - int *eof, void *data) -{ - struct obd_device *dev = (struct obd_device*) data; - struct lov_obd *lov; - - LASSERT(dev != NULL); - lov = &dev->u.lov; - *eof = 1; - return snprintf(page, count, "%d%%\n", - (lov->lov_qos.lq_prio_free * 100) >> 8); -} - -static int lov_wr_qos_priofree(struct file *file, const char *buffer, - unsigned long count, void *data) -{ - struct obd_device *dev = (struct obd_device *)data; - struct lov_obd *lov; - int val, rc; - LASSERT(dev != NULL); - - lov = &dev->u.lov; - rc = lprocfs_write_helper(buffer, count, &val); - if (rc) - return rc; - - if (val > 100) - return -EINVAL; - lov->lov_qos.lq_prio_free = (val << 8) / 100; - lov->lov_qos.lq_dirty = 1; - lov->lov_qos.lq_reset = 1; - return count; -} - -static int lov_rd_qos_maxage(char *page, char **start, off_t off, int count, - int *eof, void *data) -{ - struct obd_device *dev = (struct obd_device*) data; - struct lov_obd *lov; - - LASSERT(dev != NULL); - lov = &dev->u.lov; - *eof = 1; - return snprintf(page, count, "%u Sec\n", lov->desc.ld_qos_maxage); -} - -static int lov_wr_qos_maxage(struct file *file, const char *buffer, - unsigned long count, void *data) -{ - struct obd_device *dev = (struct obd_device *)data; - struct lov_obd *lov; - int val, rc; - LASSERT(dev != NULL); - - lov = &dev->u.lov; - rc = lprocfs_write_helper(buffer, count, &val); - if (rc) - return rc; - - if (val <= 0) - return -EINVAL; - lov->desc.ld_qos_maxage = val; - return count; -} - static void *lov_tgt_seq_start(struct seq_file *p, loff_t *pos) { struct obd_device *dev = p->private; @@ -335,8 +280,6 @@ struct lprocfs_vars lprocfs_lov_obd_vars[] = { { "kbytesfree", lprocfs_rd_kbytesfree, 0, 0 }, { "kbytesavail", lprocfs_rd_kbytesavail, 0, 0 }, { "desc_uuid", lov_rd_desc_uuid, 0, 0 }, - { "qos_prio_free",lov_rd_qos_priofree, lov_wr_qos_priofree, 0 }, - { "qos_maxage", lov_rd_qos_maxage, lov_wr_qos_maxage, 0 }, { 0 } }; @@ -359,4 +302,3 @@ struct file_operations lov_proc_target_fops = { .release = lprocfs_seq_release, }; #endif /* LPROCFS */ -