lkml.org 
[lkml]   [2017]   [Sep]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 181/233] excessive checks in ufs_write_failed() and ufs_evict_inode()
    3.16.48-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Al Viro <viro@zeniv.linux.org.uk>

    commit babef37dccbaa49249a22bae9150686815d7be71 upstream.

    As it is, short copy in write() to append-only file will fail
    to truncate the excessive allocated blocks. As the matter of
    fact, all checks in ufs_truncate_blocks() are either redundant
    or wrong for that caller. As for the only other caller
    (ufs_evict_inode()), we only need the file type checks there.

    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    [bwh: Backported to 3.16:
    - No functions need to be renamed
    - Adjust filenames, context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    --- a/fs/ufs/inode.c
    +++ b/fs/ufs/inode.c
    @@ -894,7 +894,10 @@ void ufs_evict_inode(struct inode * inod
    ufs_update_inode(inode, IS_SYNC(inode));
    old_i_size = inode->i_size;
    inode->i_size = 0;
    - if (inode->i_blocks && ufs_truncate(inode, old_i_size))
    + if (inode->i_blocks &&
    + (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
    + S_ISLNK(inode->i_mode)) &&
    + ufs_truncate(inode, old_i_size))
    ufs_warning(inode->i_sb, __func__, "ufs_truncate failed\n");
    unlock_ufs(inode->i_sb);
    }
    --- a/fs/ufs/truncate.c
    +++ b/fs/ufs/truncate.c
    @@ -451,12 +451,6 @@ int ufs_truncate(struct inode *inode, lo
    inode->i_ino, (unsigned long long)i_size_read(inode),
    (unsigned long long)old_i_size);

    - if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
    - S_ISLNK(inode->i_mode)))
    - return -EINVAL;
    - if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
    - return -EPERM;
    -
    err = ufs_alloc_lastblock(inode);

    if (err) {
    \
     
     \ /
      Last update: 2017-09-10 01:43    [W:2.606 / U:0.016 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site