Whamcloud - gitweb
LU-14195 osd: don't use set_fs() for ->fiemap() calls.
authorMr NeilBrown <neilb@suse.de>
Tue, 6 Jul 2021 00:06:18 +0000 (17:06 -0700)
committerLi Xi <lixi@ddn.com>
Tue, 13 Jul 2021 08:22:52 +0000 (08:22 +0000)
->fiemap() only accesses kernel-space data, so does not need, and
never has needed, set_fs() calls.
In Linux 5.10, these calls are deprecated.
So remove the unnecessary code.

Lustre-change: https://review.whamcloud.com/40909
Lustre-commit: d0337cab8e845efcdbfb9e26e573feb18f28e303

Test-Parameters: trivial
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: Id336855b4787ddbf656dfa3b8d0b12f663564795
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/44142
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Li Xi <lixi@ddn.com>
lustre/osd-ldiskfs/osd_io.c

index f99f625..d175fde 100644 (file)
@@ -1311,7 +1311,6 @@ static int osd_is_mapped(struct dt_object *dt, __u64 offset,
        sector_t start;
        struct fiemap_extent_info fei = { 0 };
        struct fiemap_extent fe = { 0 };
-       mm_segment_t saved_fs;
        int rc;
 
        if (block >= cached_extent->start && block < cached_extent->end)
@@ -1327,10 +1326,7 @@ static int osd_is_mapped(struct dt_object *dt, __u64 offset,
        fei.fi_extents_max = 1;
        fei.fi_extents_start = &fe;
 
-       saved_fs = get_fs();
-       set_fs(KERNEL_DS);
        rc = inode->i_op->fiemap(inode, &fei, offset, FIEMAP_MAX_OFFSET-offset);
-       set_fs(saved_fs);
        if (rc != 0)
                return 0;
 
@@ -2485,7 +2481,6 @@ static int osd_fiemap_get(const struct lu_env *env, struct dt_object *dt,
        struct inode *inode = osd_dt_obj(dt)->oo_inode;
        u64 len;
        int rc;
-       mm_segment_t cur_fs;
 
        LASSERT(inode);
        if (inode->i_op->fiemap == NULL)
@@ -2505,18 +2500,10 @@ static int osd_fiemap_get(const struct lu_env *env, struct dt_object *dt,
        if (fieinfo.fi_flags & FIEMAP_FLAG_SYNC)
                filemap_write_and_wait(inode->i_mapping);
 
-       /* Save previous value address limit */
-       cur_fs = get_fs();
-       /* Set the address limit of the kernel */
-       set_fs(KERNEL_DS);
-
        rc = inode->i_op->fiemap(inode, &fieinfo, fm->fm_start, len);
        fm->fm_flags = fieinfo.fi_flags;
        fm->fm_mapped_extents = fieinfo.fi_extents_mapped;
 
-       /* Restore the previous address limt */
-       set_fs(cur_fs);
-
        return rc;
 }