On Wed 20-09-23 10:12:03, Jeff Layton wrote:
> On Wed, 2023-09-20 at 14:48 +0200, Jan Kara wrote:
> > On Wed 20-09-23 06:35:18, Jeff Layton wrote:
> > > On Wed, 2023-09-20 at 12:17 +0200, Jan Kara wrote:
> > > > If I were a sysadmin, I'd rather opt for something
e for
multigrain timestamps") will be needed anyway but there's no problem in
reintroducing it in the new solution. I've checked the branch and the
reverts look good to me. Feel free to add:
Acked-by: Jan Kara
Honza
--
Jan Kara
SUSE Labs, CR
On Wed 20-09-23 12:30:52, Christian Brauner wrote:
> On Wed, Sep 20, 2023 at 12:17:31PM +0200, Jan Kara wrote:
> > On Wed 20-09-23 10:41:30, Christian Brauner wrote:
> > > > > f1 was last written to *after* f2 was last written to. If the
> > > > > timestamp
On Wed 20-09-23 06:35:18, Jeff Layton wrote:
> On Wed, 2023-09-20 at 12:17 +0200, Jan Kara wrote:
> > If I were a sysadmin, I'd rather opt for something like
> > finegrained timestamps + lazytime (if I needed the finegrained timestamps
> > functionality). That shoul
#define SB_SYNCHRONOUS BIT(4) /* Writes are synced at once */
> +#define SB_MGTIMEBIT(5) /* Use multi-grain timestamps */
> #define SB_MANDLOCK BIT(6) /* Allow mandatory locks on an FS */
> #define SB_DIRSYNC BIT(7) /* Directory modifications are
> sync
e constant, and that
> > > isn't necessarily the case now.
> >
> > This is only of secondary importance, because the scenario by Jan Kara
> > shows a much more fundamental breakage:
> >
> > > > The ultimate problem is that a sequence like:
> > >
t_fs_context,
> > .parameters = ext4_param_specs,
> > .kill_sb= kill_block_super,
> > - .fs_flags = FS_REQUIRES_DEV | FS_ALLOW_IDMAP,
> > + .fs_flags = FS_REQUIRES_DEV | FS_ALLOW_IDMAP |
> > FS_MGTIME,
> > };
> > MODULE_ALIAS_FS("ext4");
> >
> >
>
--
Jan Kara
SUSE Labs, CR
d
iversion since the last time we have incremented it.
So this hunk is not really changing how inode is marked dirty, it only
changes how often we check whether iversion needs increment and that should
be fine (and desirable). Hence lazytime isn't really broken by this in any
way.
Honza
--
Jan Kara
SUSE Labs, CR
On Wed 09-08-23 09:06:34, Christian Brauner wrote:
> On Tue, Aug 08, 2023 at 11:37:01AM +0200, Jan Kara wrote:
> > On Mon 07-08-23 15:38:37, Jeff Layton wrote:
> > > In later patches, we're going to drop the "now" parameter from the
> > > update_time opera
atch eliminates
> update_time_for_write, which goes to great pains to avoid in-memory
> stores. Just have it overwrite the timestamps unconditionally.
>
> Signed-off-by: Jeff Layton
> Acked-by: David Sterba
Looks good to me. Feel free
Filesystems that don't set this flag will continue to use
> coarse-grained timestamps.
>
> Later patches will convert individual filesystems to use the new
> infrastructure.
>
> Signed-off-by: Jeff Layton
Looks good to me. Feel free to
_update_time.
>
> Signed-off-by: Jeff Layton
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
--
Jan Kara
SUSE Labs, CR
if (flags & S_ATIME)
> - inode->i_atime = *now;
> + inode->i_atime = now;
>
> xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL);
> xfs_trans_log_inode(tp, ip, log_flags);
Otherwise the patch looks good to me so feel free to add:
Reviewed-by: Jan Kara
Honza
--
Jan Kara
SUSE Labs, CR
dirty before calling
__mark_inode_dirty(). Otherwise you could release budget for inode update
you really need...
> if (release)
> ubifs_release_budget(c, &req);
Honza
--
Jan Kara
SUSE Labs, CR
> Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/fat/misc.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fat/misc.c b/fs/fat
Signed-off-by: Jeff Layton
Nice cleanup! Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/btrfs/inode.c | 9 +
> 1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/fs/btrfs/inode.c b/fs/
gt; that and rework the callers to expect it.
>
> Signed-off-by: Jeff Layton
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/gfs2/inode.c | 3 +-
> fs/inode.c | 84
>
On Mon 07-08-23 15:38:32, Jeff Layton wrote:
> An inode with no superblock? Unpossible!
>
> Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/inode.c | 6 --
&g
>
> Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ext4/super.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/super.c b/
; Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> mm/shmem.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index 654d9
);
> const struct fs_parameter_spec *parameters;
> @@ -2284,6 +2313,17 @@ struct file_system_type {
>
> #define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME)
>
> +/**
> + * is_mgtime: is this inode using multigrain timestamps
> + * @inode: inode to test for multigrain timestamps
> + *
> + * Return true if the inode uses multigrain timestamps, false otherwise.
> + */
> +static inline bool is_mgtime(const struct inode *inode)
> +{
> + return inode->i_sb->s_type->fs_flags & FS_MGTIME;
> +}
> +
> extern struct dentry *mount_bdev(struct file_system_type *fs_type,
> int flags, const char *dev_name, void *data,
> int (*fill_super)(struct super_block *, void *, int));
> @@ -2919,6 +2959,7 @@ extern void page_put_link(void *);
> extern int page_symlink(struct inode *inode, const char *symname, int len);
> extern const struct inode_operations page_symlink_inode_operations;
> extern void kfree_link(void *);
> +void fill_mg_cmtime(u32 request_mask, struct inode *inode, struct kstat
> *stat);
> void generic_fillattr(struct mnt_idmap *, u32, struct inode *, struct kstat
> *);
> void generic_fill_statx_attr(struct inode *inode, struct kstat *stat);
> extern int vfs_getattr_nosec(const struct path *, struct kstat *, u32,
> unsigned int);
>
> --
> 2.41.0
>
--
Jan Kara
SUSE Labs, CR
ng of
> STATX_CHANGE_COOKIE into generic_fillattr.
>
> Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/9p/vfs_inode.c | 4 ++--
> fs/9p/vfs_inode_dotl.c | 4 ++--
>
On Wed 05-07-23 14:58:12, Jeff Layton wrote:
> Now that everything in-tree is converted to use the accessor functions,
> rename the i_ctime field in the inode to discourage direct access.
>
> Signed-off-by: Jeff Layton
Looks good. Feel free to add:
Reviewed-
On Wed 05-07-23 15:01:12, Jeff Layton wrote:
> In later patches, we're going to change how the inode's ctime field is
> used. Switch to using accessor functions instead of raw accesses of
> inode->i_ctime.
>
> Signed-off-by: Jeff Layton
Looks good to me. Feel free to
struct inode *, struct dentry *);
> extern int simple_unlink(struct inode *, struct dentry *);
> extern int simple_rmdir(struct inode *, struct dentry *);
> +void simple_rename_timestamp(struct inode *old_dir, struct dentry
> *old_dentry,
> + struct inode *new_dir, struct dentry *new_dentry);
> extern int simple_rename_exchange(struct inode *old_dir, struct dentry
> *old_dentry,
> struct inode *new_dir, struct dentry
> *new_dentry);
> extern int simple_rename(struct mnt_idmap *, struct inode *,
> --
> 2.41.0
>
--
Jan Kara
SUSE Labs, CR
er to do that safely though, we'll need to eradicate raw
> accesses of the inode->i_ctime field from the kernel.
>
> Add new accessor functions for the ctime that we can use to replace them.
>
> Signed-off-by: Jeff Layton
Looks good to m
rness. AFAICS so far if someone is e.g.
heavily faulting pages on a file, direct IO to that file can be starved
indefinitely. That is IMHO not a good thing and I would not like to use
this type of lock in VFS until this problem is resolved. But it should be
fixable e.g. by introducing some kind of deadline for a waiter after which
it will block acquisitions of the other lock state.
Honza
--
Jan Kara
SUSE Labs, CR
On Wed 10-05-23 02:18:45, Kent Overstreet wrote:
> On Wed, May 10, 2023 at 03:07:37AM +0200, Jan Kara wrote:
> > On Tue 09-05-23 12:56:31, Kent Overstreet wrote:
> > > From: Kent Overstreet
> > >
> > > This is used by bcachefs to fix a page cache cohere
l because as Andreas states in his
changelog of the revert that's a bit more tricky. But at least for ext4
the conversion of data=journal path resulted in much cleaner and shorter
code.
Honza
--
Jan Kara
SUSE Labs, CR
On Thu 01-09-22 21:35:04, Zhang Yi wrote:
> bh_submit_read() and the uptodate check logic in bh_uptodate_or_lock()
> has been integrated in bh_read() helper, so switch to use it directly.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-
>
> - if (buffer_uptodate(bh))
> - return bh;
> -
> - ll_rw_block(REQ_OP_READ, 1, &bh);
> -
> - wait_on_buffer(bh);
> - if (buffer_uptodate(bh))
> + if (bh_read(bh, 0) >= 0)
> return bh;
>
> brelse(bh);
> --
> 2.31.1
>
--
Jan Kara
SUSE Labs, CR
o stop using ll_rw_block() in ufs.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ufs/balloc.c | 12
> 1 file changed, 4 insertions(+), 8 deletions(
en locked by others. So stop using ll_rw_block() in
> reiserfs. We also switch to new bh_readahead_batch() helper for the
> buffer array readahead path.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
o stop using ll_rw_block() in ocfs2.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ocfs2/aops.c | 2 +-
> fs/ocfs2/super.c | 4 +---
> 2 files changed
o stop using ll_rw_block() in
> journal_get_superblock(). We also switch to new bh_readahead_batch()
> for the buffer array readahead path.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
o stop using ll_rw_block() in
> ntfs_get_block_vbo().
>
> Signed-off-by: Zhang Yi
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ntfs3/inode.c | 7 ++-
> 1 file changed, 2 insertions(+), 5
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/gfs2/meta_io.c | 7 ++-
> fs/gfs2/quota.c | 8 ++--
> 2 files changed, 4 insertions(+), 11 deletion
antee buffer locked and submit IO if needed.
>
> Signed-off-by: Zhang Yi
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/buffer.c | 12 +---
> 1 file changed, 5 insertions(+), 7 deleti
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/buffer.c | 65 +
> include/linux/buffer_head.h | 38
(by using bh_read()).
> +
> +static inline void bh_read_batch(struct buffer_head *bhs[], int nr)
> +{
> + __bh_read_batch(bhs, nr, 0, true);
> +}
> +
> +static inline void bh_readahead_batch(struct buffer_head *bhs[], int nr,
> + blk_opf_t op_flags)
> +{
> + __bh_read_batch(bhs, nr, op_flags, false);
> +}
> +
It is more common to have number of elements in the array as the first
argument and the array as the second one in the kernel. So rather:
static inline void bh_read_batch(int nr, struct buffer_head *bhs[])
and similarly for bh_readahead_batch().
Honza
--
Jan Kara
SUSE Labs, CR
unlock_buffer(*bh);
> - ll_rw_block(REQ_OP_READ, 1, bh);
> - wait_on_buffer(*bh);
> - if (!buffer_uptodate(*bh)) {
> + if (bh_read_locked(*bh, 0)) {
> mlog_errno(-EIO);
> brelse(*bh);
> *bh = NULL;
I would just use bh_
On Wed 31-08-22 15:21:11, Zhang Yi wrote:
> bh_submit_read() has no user anymore, just remove it.
>
> Signed-off-by: Zhang Yi
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/buffer.c
brelse(bh);
> ext2_error(sb, __func__,
> "Cannot read block bitmap - "
> --
> 2.31.1
>
--
Jan Kara
SUSE Labs, CR
On Wed 31-08-22 15:21:09, Zhang Yi wrote:
> Now that all ll_rw_block() users has been replaced to new safe helpers,
> we just remove it here.
>
> Signed-off-by: Zhang Yi
Looks good. Feel free to add:
Reviewed-by: Jan Kara
o stop using ll_rw_block() in ufs.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ufs/balloc.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
&g
o stop using ll_rw_block(). We also switch to
> new bh_readahead_batch() helper for the buffer array readahead path.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
&
en locked by others. So stop using ll_rw_block() in
> reiserfs. We also switch to new bh_readahead_batch() helper for the
> buffer array readahead path.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
o stop using ll_rw_block() in
> ntfs_get_block_vbo().
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/ntfs3/inode.c | 7 ++-
> 1 file changed, 2 insertion
o stop using ll_rw_block() in
> journal_get_superblock(). We also switch to new bh_readahead_batch()
> for the buffer array readahead path.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
y others. So stop using ll_rw_block(),
> switch to sync helper instead.
>
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/isofs/compress.c | 2 +-
> 1 file chang
> Signed-off-by: Zhang Yi
Looks good to me. Feel free to add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/gfs2/meta_io.c | 6 ++
> fs/gfs2/quota.c | 4 +---
> 2 files changed, 3 insertions(+), 7 deletions(-)
>
>
| REQ_RAHEAD, 1, &bh);
> + if (trylock_buffer(bh))
> + __bh_read(bh, REQ_RAHEAD, false);
I suppose this can be bh_readahead()?
> brelse(bh);
> }
> }
Otherwise the patch looks good.
Honza
--
Jan Kara
SUSE Labs, CR
On Wed 31-08-22 15:20:58, Zhang Yi wrote:
> No one use __breadahead_gfp() and sb_breadahead_unmovable() any more,
> remove them.
>
> Signed-off-by: Zhang Yi
Looks good. Feel free to add:
Reviewed-by: Jan Kara
Honza
printk in gfs2
>
> Diffstat:
> fs/gfs2/aops.c | 26 --
> fs/gfs2/log.c |5 ++---
> fs/iomap/buffered-io.c | 15 ---
> fs/zonefs/super.c |8
> include/linux/iomap.h |3 ---
> 5 files changed, 2 insertions(+), 55 deletions(-)
--
Jan Kara
SUSE Labs, CR
ld need to look it up via the hashes?
> > >
> > > Steve.
> > >
> > > Hi,
> > >
> > > The actual use case, which is easily demonstrated with lockdep, is
> > > given
> > > in the patch text shortly after where you placed y
On Mon 26-07-21 19:45:22, Andreas Grünbacher wrote:
> Jan Kara schrieb am Mo., 26. Juli 2021, 19:21:
>
> > On Fri 23-07-21 22:58:38, Andreas Gruenbacher wrote:
> > > In __iomap_dio_rw, when iomap_apply returns an -EFAULT error, complete
> > the
> > > request
On Mon 26-07-21 19:50:23, Andreas Grünbacher wrote:
> Jan Kara schrieb am Mo., 26. Juli 2021, 19:10:
>
> > On Fri 23-07-21 22:58:40, Andreas Gruenbacher wrote:
> > > Also disable page faults during direct I/O requests and implement the
> > same kind
> > > o
/* magic error code to fall back to buffered I/O */
> if (ret == -ENOTBLK) {
> wait_for_completion = true;
> --
> 2.26.3
>
--
Jan Kara
SUSE Labs, CR
> if (ret)
> goto out_uninit;
>
> + pagefault_disable();
Is there any use in pagefault_disable() here? iomap_dio_rw() should not
trigger any page faults anyway, should it?
Honza
--
Jan Kara
SUSE Labs, CR
lags);
> + if (ret <= 0)
> + break;
> + nend = nstart + ret * PAGE_SIZE;
> + }
> + if (locked)
> + mmap_read_unlock(mm);
> + if (nstart > start)
> + return min(nstart - start, len);
> + return 0;
> +}
> +
> /**
> * get_dump_page() - pin user page in memory while writing it to core dump
> * @addr: user address
> --
> 2.26.3
>
--
Jan Kara
SUSE Labs, CR
On Fri 21-05-21 17:46:04, Andreas Gruenbacher wrote:
> On Fri, May 21, 2021 at 5:23 PM Jan Kara wrote:
> > On Thu 20-05-21 16:07:56, Andreas Gruenbacher wrote:
> > > > So you probably need to add a new VM_FAULT_
> > > > return code that will behave like V
On Thu 20-05-21 16:07:56, Andreas Gruenbacher wrote:
> On Thu, May 20, 2021 at 3:30 PM Jan Kara wrote:
> > On Thu 20-05-21 14:25:36, Andreas Gruenbacher wrote:
> > > Now that we handle self-recursion on the inode glock in gfs2_fault and
> > > gfs2_page_mkwrite, w
On Thu 20-05-21 14:25:36, Andreas Gruenbacher wrote:
> Now that we handle self-recursion on the inode glock in gfs2_fault and
> gfs2_page_mkwrite, we need to take care of more complex deadlock
> scenarios like the following (example by Jan Kara):
>
> Two independent processes P1, P
On Tue 04-05-21 16:35:53, Junxiao Bi wrote:
> On 5/4/21 2:02 AM, Jan Kara wrote:
> > On Mon 03-05-21 10:25:31, Junxiao Bi wrote:
> > > On 5/3/21 3:29 AM, Jan Kara wrote:
> > > > On Fri 30-04-21 14:18:15, Junxiao Bi wrote:
> > > > > On 4/30/21 5:47 AM,
On Mon 03-05-21 10:25:31, Junxiao Bi wrote:
>
> On 5/3/21 3:29 AM, Jan Kara wrote:
> > On Fri 30-04-21 14:18:15, Junxiao Bi wrote:
> > > On 4/30/21 5:47 AM, Jan Kara wrote:
> > >
> > > > On Thu 29-04-21 11:07:15, Junxiao Bi wrote:
> > >
On Fri 30-04-21 14:18:15, Junxiao Bi wrote:
> On 4/30/21 5:47 AM, Jan Kara wrote:
>
> > On Thu 29-04-21 11:07:15, Junxiao Bi wrote:
> > > On 4/29/21 10:14 AM, Andreas Gruenbacher wrote:
> > > > On Tue, Apr 27, 2021 at 4:44 AM Junxiao Bi
> > > > wrote
he tail of the cluster? It will be more
efficient than going through the page cache and you also won't have to
tweak block_write_full_page()...
Honza
--
Jan Kara
SUSE Labs, CR
> >
> > And even if the locking isn't recursive, you have glock->mmap_sem and
> > mmap_sem->glock lock orderings so ABBA deadlocks are possible AFAICT.
> >
> > And there's a similar problem with the write path as well, just the lock is
> > grabbed excl
On Thu 22-04-21 14:51:42, Andreas Gruenbacher wrote:
> Hi Jan,
>
> On Thu, Apr 22, 2021 at 1:26 PM Jan Kara wrote:
> > I am looking into how GFS2 protects against races between hole punching and
> > things like page fault or readahead and AFAICT it seems it does not. In
&g
gfs2_page_mkwrite() sneaked in that window as well, we might be even racing
with writeback and are possibly corrupting the filesystem on disk. Is there
anything I'm missing?
Honza
--
Jan Kara
SUSE Labs, CR
ime.
This may be especially painful for filesystems that don't implement DIO
overwrites with i_rwsem in shared mode...
Honza
--
Jan Kara
SUSE Labs, CR
%u", yacl->num_cleaned);
> break;
> case 3:
These scnprintf() changes (and there are more in the patch) probably
shouldn't be here... Otherwise the patch still looks good to me :).
Honza
--
Jan Kara
SUSE Labs, CR
hat Dave points out: Even if you use writeout to
writeprotect pages, GFS2 still seems to have a race where page fault can
come while you are freeing blocks and if you allow that you usually get
into a problematic state. Effects depend on fs implementation details but
usually it can result in stale data exposure or fs corruption.
Honza
--
Jan Kara
SUSE Labs, CR
> + int (*get)(const struct xattr_handler *handler,
> +struct xattr_gs_flags);
> + int (*set)(const struct xattr_handler *handler,
> +struct xattr_gs_flags);
The prototype here is really "struct xattr_gs_flags *args", isn't it?
the
> flags option for xattr functions, and a replacement of _vfs_getxattr
> with __vfs_getxattr(...XATTR_NOSECURITY).
>
> Signed-off-by: Mark Salyzyn
> Cc: Stephen Smalley
> Cc: linux-ker...@vger.kernel.org
> Cc: kernel-t...@android.com
> Cc: linux-security-mod...@vger.ke
On Wed 14-08-19 07:54:16, Mark Salyzyn wrote:
> On 8/14/19 4:00 AM, Jan Kara wrote:
> > On Tue 13-08-19 07:55:06, Mark Salyzyn wrote:
> > ...
> > > diff --git a/fs/xattr.c b/fs/xattr.c
> > > index 90dd78f0eb27..71f887518d6f 100644
> > &g
ms confusing to export XATTR_NOSECURITY definition to userspace when
that is kernel-internal flag. I'd just define it in include/linux/xattr.h
somewhere from the top of flags space (like 0x4000).
Otherwise the patch looks OK to me (cannot really comment on the security
module aspect of this whole thing though).
Honza
--
Jan Kara
SUSE Labs, CR
On Fri 28-06-19 11:34:31, Darrick J. Wong wrote:
> From: Darrick J. Wong
>
> The DAX flag only applies to files and directories, so don't let it get
> set for other types of files.
>
> Signed-off-by: Darrick J. Wong
Looks good to me. You can add:
On Mon 10-06-19 21:46:05, Darrick J. Wong wrote:
> From: Darrick J. Wong
>
> Move the extent size hint checks that aren't xfs-specific to the vfs.
>
> Signed-off-by: Darrick J. Wong
The patch looks good to me. You can add:
R
On Mon 10-06-19 21:45:57, Darrick J. Wong wrote:
> From: Darrick J. Wong
>
> Standardize the project id checks for FSSETXATTR.
>
> Signed-off-by: Darrick J. Wong
The patch looks good to me. You can add:
Review
atch looks good to me. You can add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/btrfs/ioctl.c | 21 +---
> fs/ext4/ioctl.c| 27 ++--
> fs/f2fs/file.c | 26 ++-
J. Wong
The patch looks good to me. You can add:
Reviewed-by: Jan Kara
Honza
> ---
> v2: fix jfs locking and remove its opencoded flags check
> ---
> fs/btrfs/ioctl.c| 13 +
> fs/efivarfs/fil
;i_size;
> +
> while (len > 0) {
> ret = iomap_apply(inode, pos, len, IOMAP_ZERO,
> ops, did_zero, iomap_zero_range_actor);
> if (ret <= 0)
> - return ret;
> + goto out;
>
> pos += ret;
> len -= ret;
> }
> + ret = 0;
>
> - return 0;
> +out:
> + if (old_size != inode->i_size)
> + mark_inode_dirty(inode);
> +
> + return ret;
> }
> EXPORT_SYMBOL_GPL(iomap_zero_range);
>
> --
> 2.20.1
>
--
Jan Kara
SUSE Labs, CR
;
> Signed-off-by: Christoph Hellwig
> Signed-off-by: Andreas Gruenbacher
Looks good to me. You can add:
Reviewed-by: Jan Kara
Honza
> ---
> fs/iomap.c | 18 --
> 1 file changed, 8 insertions(+),
; it in page_done. Other filesystems that implement data journaling will
> require the same kind of mechanism.
>
> Signed-off-by: Andreas Gruenbacher
Looks good to me. You can add:
Reviewed-by: Jan Kara
Honza
> ---
te_end into the
> callers of __generic_write_end. Then, in iomap_write_end, put the page
> after calling the page_done callback.
>
> Reported-by: Jan Kara
> Fixes: 63899c6f8851 ("iomap: add a page_done callback")
> Signed-off-by: Andreas Gruenbacher
The patch looks good
pied, page, iomap);
Looking at the code now, this is actually flawed (preexisting problem):
__iomap_write_end or generic_write_end() will release the page reference
and so you cannot just pass it to ->page_done(). That is a potential
use-after-free...
Honza
--
Jan Kara
SUSE Labs, CR
(). So won't it be
more natural to just mandate ->page_prepare() and ->page_done() callbacks
and each filesystem would set it to a helper function it needs? Probably we
could get rid of IOMAP_F_BUFFER_HEAD flag that way...
Honza
--
Jan Kara
SUSE Labs, CR
> active, but that's what's needed to clean dirty pages. iomap doesn't
> allow us to put the block allocation into a separate transaction from
> the page writes; for that, the opposite to the page_done hook would
> probably be needed.
I agree that a ->page_prepare() hook would be probably the cleanest
solution for this.
Honza
--
Jan Kara
SUSE Labs, CR
Hi,
On Wed 04-04-18 13:56:53, Steven Whitehouse wrote:
> On 04/04/18 13:36, Jan Kara wrote:
> > Hi,
> >
> > On Wed 04-04-18 10:24:48, Steven Whitehouse wrote:
> > > On 03/04/18 13:05, Jan Kara wrote:
> > > > Hello,
> > > >
> > > >
Hi,
On Wed 04-04-18 10:24:48, Steven Whitehouse wrote:
> On 03/04/18 13:05, Jan Kara wrote:
> > Hello,
> >
> > On Sun 01-04-18 10:01:02, syzbot wrote:
> > > syzbot hit the following crash on upstream commit
> > > 10b84daddbec72c6b440216a69de9a960
er_hwframe+0x42/0xb7
> RIP: 0033:0x456c29
> RSP: 002b:7fff74938dc8 EFLAGS: 0202 ORIG_RAX: 00e7
> RAX: ffda RBX: RCX: 00456c29
> RDX: 004170e0 RSI: RDI: 0001
> RBP: 0003 R08: 000a R09: 00418100
> R10: 200a9300 R11: 0202 R12: 0004
> R13: 00418100 R14: R15:
> Dumping ftrace buffer:
>(ftrace buffer empty)
> Kernel Offset: disabled
> Rebooting in 86400 seconds..
Honza
--
Jan Kara
SUSE Labs, CR
On Wed 21-02-18 07:54:49, Christoph Hellwig wrote:
> And use it in a few more places rather than opencoding the values.
>
> Signed-off-by: Christoph Hellwig
Looks fine to me. You can add:
Reviewed-by: Jan Kara
Honza
&g
We want only pages from given range in gfs2_write_cache_jdata(). Use
pagevec_lookup_range_tag() instead of pagevec_lookup_tag() and remove
unnecessary code.
CC: Bob Peterson
CC: cluster-devel@redhat.com
Reviewed-by: Daniel Jordan
Signed-off-by: Jan Kara
---
fs/gfs2/aops.c | 20
We want only pages from given range in gfs2_write_cache_jdata(). Use
pagevec_lookup_range_tag() instead of pagevec_lookup_tag() and remove
unnecessary code.
CC: Bob Peterson
CC: cluster-devel@redhat.com
Signed-off-by: Jan Kara
---
fs/gfs2/aops.c | 20 ++--
1 file changed, 2
We want only pages from given range in gfs2_write_cache_jdata(). Use
pagevec_lookup_range_tag() instead of pagevec_lookup_tag() and remove
unnecessary code.
CC: Bob Peterson
CC: cluster-devel@redhat.com
Signed-off-by: Jan Kara
---
fs/gfs2/aops.c | 20 ++--
1 file changed, 2
On Mon 31-07-17 12:49:25, Jeff Layton wrote:
> From: Jeff Layton
>
> Necessary now for gfs2_fsync and sync_file_range, but there will
> eventually be other callers.
>
> Signed-off-by: Jeff Layton
Looks good to me. You can add:
Rev
On Mon 31-07-17 09:00:37, Jeff Layton wrote:
> On Mon, 2017-07-31 at 14:07 +0200, Jan Kara wrote:
> > On Mon 31-07-17 07:44:16, Jeff Layton wrote:
> > > On Mon, 2017-07-31 at 12:32 +0100, Steven Whitehouse wrote:
> > > > On 31/07/17 12:27, Jeff Layton wrote:
> &g
On Mon 31-07-17 07:44:16, Jeff Layton wrote:
> On Mon, 2017-07-31 at 12:32 +0100, Steven Whitehouse wrote:
> > On 31/07/17 12:27, Jeff Layton wrote:
> > > On Thu, 2017-07-27 at 08:48 -0400, Jeff Layton wrote:
> > > > On Thu, 2017-07-27 at 10:49 +0200, Jan Kara wrote
On Wed 26-07-17 13:55:35, Jeff Layton wrote:
> From: Jeff Layton
>
> We have this complex conditional copied to several places. Turn it into
> a helper function.
>
> Signed-off-by: Jeff Layton
Looks good. You can add:
Rev
1 - 100 of 449 matches
Mail list logo