ipoib: switch to netif_napi_add_weight()
[linux-2.6-microblaze.git] / fs / btrfs / sysfs.c
index ba78ca5..92a1fa8 100644 (file)
@@ -394,11 +394,9 @@ static ssize_t supported_sectorsizes_show(struct kobject *kobj,
 {
        ssize_t ret = 0;
 
-       /* 4K sector size is also supported with 64K page size */
-       if (PAGE_SIZE == SZ_64K)
+       /* An artificial limit to only support 4K and PAGE_SIZE */
+       if (PAGE_SIZE > SZ_4K)
                ret += sysfs_emit_at(buf, ret, "%u ", SZ_4K);
-
-       /* Only sectorsize == PAGE_SIZE is now supported */
        ret += sysfs_emit_at(buf, ret, "%lu\n", PAGE_SIZE);
 
        return ret;
@@ -722,6 +720,42 @@ SPACE_INFO_ATTR(bytes_zone_unusable);
 SPACE_INFO_ATTR(disk_used);
 SPACE_INFO_ATTR(disk_total);
 
+static ssize_t btrfs_sinfo_bg_reclaim_threshold_show(struct kobject *kobj,
+                                                    struct kobj_attribute *a,
+                                                    char *buf)
+{
+       struct btrfs_space_info *space_info = to_space_info(kobj);
+       ssize_t ret;
+
+       ret = sysfs_emit(buf, "%d\n", READ_ONCE(space_info->bg_reclaim_threshold));
+
+       return ret;
+}
+
+static ssize_t btrfs_sinfo_bg_reclaim_threshold_store(struct kobject *kobj,
+                                                     struct kobj_attribute *a,
+                                                     const char *buf, size_t len)
+{
+       struct btrfs_space_info *space_info = to_space_info(kobj);
+       int thresh;
+       int ret;
+
+       ret = kstrtoint(buf, 10, &thresh);
+       if (ret)
+               return ret;
+
+       if (thresh < 0 || thresh > 100)
+               return -EINVAL;
+
+       WRITE_ONCE(space_info->bg_reclaim_threshold, thresh);
+
+       return len;
+}
+
+BTRFS_ATTR_RW(space_info, bg_reclaim_threshold,
+             btrfs_sinfo_bg_reclaim_threshold_show,
+             btrfs_sinfo_bg_reclaim_threshold_store);
+
 /*
  * Allocation information about block group types.
  *
@@ -738,6 +772,7 @@ static struct attribute *space_info_attrs[] = {
        BTRFS_ATTR_PTR(space_info, bytes_zone_unusable),
        BTRFS_ATTR_PTR(space_info, disk_used),
        BTRFS_ATTR_PTR(space_info, disk_total),
+       BTRFS_ATTR_PTR(space_info, bg_reclaim_threshold),
        NULL,
 };
 ATTRIBUTE_GROUPS(space_info);